简介
纯go实现的im即时通讯系统,各层可单独部署,之间通过rpc通讯,支持集群,github地址 https://github.com/Terry-Ye/im, 学习于goim, 总分三层,
- comet(用户连接层),可以直接部署多个节点,每个节点保证serverId 唯一,在配置文件comet.toml
- logic(业务逻辑层),无状态,各层通过rpc通讯,容易扩展,支持http接口来接收消息
- job(任务推送层)通过redsi 订阅发布功能进行推送到comet层。
架构图
时序图
以下Comet 层,Logic 层,Job层都可以灵活扩展机器
特性
- 分布式,可拓扑的架构
- 支持单个,房间推送
- 心跳支持(gorilla/websocket内置)
- 基于redis 做消息推送
- 轻量级
- 持续迭代…