Giter VIP home page Giter VIP logo

brewlin / im-cloud Goto Github PK

View Code? Open in Web Editor NEW
37.0 3.0 10.0 2.98 MB

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

Home Page: http://wiki.brewlin.com/wiki/im-cloud/index/

License: Apache License 2.0

PHP 97.10% Shell 0.12% Makefile 0.87% Dockerfile 1.92%
swoole grpc-server grpc-client coroutine framework php composer-package im middleware microservice coroutines context consul discovery grpc protobuf

im-cloud's Introduction

im-cloud

Documentation License: �Apache Docker Build Status Php Version Swoole Version GitHub last commit GitHub repo size

基于原生 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)
    • test version

流程图

im-cloud 连接流程图

im-cloud 数据流程图

im-cloud 业务流程

相关文档

📝 License

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

im-cloud's People

Contributors

brewlin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.