szbrain / im-cloud

原生swoole4 全协程化分布式中间件、多节点扩容、多节点服务

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

im-cloud

Documentation License: �Apache

基于原生 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 等节点可水平扩容多个节点增加并发处理

架构图

im-cloud 连接流程图

im-cloud 数据流程图

im-cloud 业务流程

终端处理

process start

组件依赖

相关组件为纯swoole实现

@core (done) 核心架构

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

@discovery (done) 服务发现注册

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

@redis(done) redis连接池

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

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

@cloud (test verion)

@job (test version)

@logic (test version)

相关文档

📝 License

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

About

原生swoole4 全协程化分布式中间件、多节点扩容、多节点服务

License:Apache License 2.0


Languages

Language:PHP 99.4%Language:Dockerfile 0.4%Language:Makefile 0.1%Language:Shell 0.0%