Skip to content
原生swoole4 全协程化分布式中间件、多节点扩容、多节点服务
PHP Other
  1. PHP 99.3%
  2. Other 0.7%
Branch: master
Clone or download
Latest commit 89cfb22 Sep 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
appm up docs Sep 18, 2019
apps apps => done cloud cli start&stop Sep 19, 2019
bin add docker & docker-compose up Aug 10, 2019
docs up docs & rename app => appm Sep 18, 2019
examples up docs & rename app => appm Sep 18, 2019
pkg apps => done cloud cli start&stop Sep 19, 2019
resource up docs Sep 18, 2019
.gitignore build soncul lib Jun 19, 2019
API.md up readme Sep 20, 2019
LICENSE add docs Aug 9, 2019
Makefile up docs & rename app => appm Sep 18, 2019
NOTICE.md up docs & rename app => appm Sep 18, 2019
README.md up readme Sep 20, 2019
docker-compose.yml up docs & rename app => appm Sep 18, 2019

README.md

im-cloud

Documentation License: �Apache Docker Build Status Php Version Swoole Version GitHub last commit GitHub release (latest by date)

基于原生 swoole 全协程化构建 im-cloud中间件,多节点扩容

概述

  • 基于swoole原生构建即时推送im分布式服务,不进行业务处理,单独作为中间件使用,可弹性扩充节点增加性能处理,业务demo:(todo)
  • 高性能 水平扩容 分布式服务架构 接入服务治理
  • cloud 作为中心服务节点 grpc-server 节点,对外可以进行tcp、websocket 客户端进行长连接注册,可水平扩容至多个节点 并注册到服务中心 例如consul,每个cloud节点维护自己的客户端
  • job 节点作为消费节点 消费队列数据 然后进行grpc 和cloud服务进行通讯 进行 push push room broadcast,作为节点中间件,消费kafakarabbitmq。。。之类,可以通过配置切换消息队列类型
  • logic 节点 提供rest api接口,作为生产节点 和 grpc客户端,可写入队列作为生产者,也可以扩展自己的业务进行rpc直接调用center中心进行推送,客户端数据缓存至redis中,多个logic节点访问redis数据同步
  • cloud,job,logic 等节点可水平扩容多个节点增加并发处理

appm & apps

  • appm多进程版本(multi process coroutine) 测试和单元测试中
    • test version
  • apps单进程全协程化server版本(single process coroutine)
    • done soon..
  • notice
  • api

流程图

im-cloud 连接流程图

im-cloud 数据流程图

im-cloud 业务流程

组件依赖

相关组件为纯swoole实现

@core (done) 核心架构

@grpc (done) grpc包依赖 grpc-client连接池

@discovery (done) 服务发现注册

@process(done) 自定义进程管理器

@redis(done) redis连接池

@queue(done amqp,soon kafak) 消息队列连接池

@memory(done)swoole 相关内存操作封装

@task(done) 异步任务投递组件

@cloud (test verion)

@job (test version)

@logic (test version)

相关文档

📝 License

Copyright © 2019 brewlin.
This project is Apache2.0 licensed.

You can’t perform that action at this time.