分布式通讯平台-WuKongIM
2024-11-09 20:50:43 阿炯
通用通讯服务悟空 IM,支持即时通讯,消息推送,物联网通讯,音视频信令,直播弹幕,客服系统,AI 通讯,即时社区等场景,采用了自研的WuKongIM协议。采用Go语言编写开发并在ApacheV2.0许可协议下授权使用。
特点
完全自研:自研消息数据库,消息分区永久存储,自研二进制协议 (支持自定义),重写 Go 底层网络库,无缝支持 TCP 和 websocket。
性能强劲:单机支持百万用户同时在线,单机 16w/秒消息(包括 DB 操作)吞吐量,一个频道支持万人同时订阅。
零依赖:没有依赖任何第三方组件,部署简单,一条命令即可启动
安全:消息通道和消息内容全程加密,防中间人攻击和窜改消息内容。
扩展性强:采用频道设计理念,目前支持群组频道,点对点频道,后续可以根据自己业务自定义频道可实现机器人频道,客服频道等等。
功能
支持自定义消息
支持订阅/发布者模式
支持个人/群聊/客服/社区资讯频道
支持频道黑明单
支持频道白名单
支持消息永久漫游,换设备登录,消息不丢失
支持在线状态,支持同账号多设备同时在线
支持多设备消息实时同步
支持用户最近会话列表服务端维护
支持指令消息
支持离线指令接口
支持 Webhook,轻松对接自己的业务系统
支持 Datasoure,无缝对接自己的业务系统数据源
支持 Websocket 连接
支持 TLS 1.3
支持 Prometheus 监控
监控系统开发
支持 Windows 系统 (仅开发用)
支持流式消息,类似 chatgpt 的结果输出流
架构图
独特性
群成员无上限,轻松支持 10 万人群聊,消息可永久存储。
资源消耗低
自研二进制协议,心跳包只有 1 字节,省流量,省电量,传输更迅速。
安全性
消息通道和消息内容全程加密,防中间人攻击和窜改消息内容,服务端数据实时备份,数据不丢失。
性能
基于 pebble kv 数据库,研发了针对于 IM 这种服务的特有分布式数据库,省了其他数据库为了通用性而带来的性能损耗, 因为存储快,所以消息快。
高可用
通过魔改 raft 分布式协议,实现了自动容灾,一台机器宕机,另一台机器自动接管,对外无感知。
去中心化,无单点,无中心节点,每个节点都是独立且平等的,都可以提供服务。
扩容方便,只需增加机器,不需要停机,不需要迁移数据,自动按策略分配数据。
易用性
不依赖任何第三方中间件,部署简单,一条命令即可启动。
采用频道订阅发布的设计理念,容易理解,容易上手。
与 Redis 一样简单,Kafka 一样高性能,MySQL 一样可靠。
部署方式
单机部署:
WuKongIM的单机可以很容易的扩容成集群,所以单机部署也是一种选择。
优点:部署简单,性能较好,支持在线扩容。
缺点:无法容灾,需要手动备份。
适用场景:小型应用,对数据安全要求不高的应用,后续量大可以扩容成集群。
集群部署:
优点:高可用,容灾性强,支持在线扩容,多副本之间实时自动备份,负载均衡等。
缺点:需要多台机器。
适用场景:对数据安全要求高的应用,大型应用。
最新版本:2.0
2024年11月发布的v2.0.6的改进如下:
feat: 消息轨迹可视化功能
feat: 后台管理 UI 升级
feat: 支持 Loki 来管理日志
fix: 修复统计在线用户数量不准的问题
fix: 修复客服频道不能发消息问题
refactor:将分布式 api 重构 / 拆分多个文件
fix: 解决更新设备时偶尔导致服务崩溃问题。
官方主页:https://githubim.com/
特点
完全自研:自研消息数据库,消息分区永久存储,自研二进制协议 (支持自定义),重写 Go 底层网络库,无缝支持 TCP 和 websocket。
性能强劲:单机支持百万用户同时在线,单机 16w/秒消息(包括 DB 操作)吞吐量,一个频道支持万人同时订阅。
零依赖:没有依赖任何第三方组件,部署简单,一条命令即可启动
安全:消息通道和消息内容全程加密,防中间人攻击和窜改消息内容。
扩展性强:采用频道设计理念,目前支持群组频道,点对点频道,后续可以根据自己业务自定义频道可实现机器人频道,客服频道等等。
功能
支持自定义消息
支持订阅/发布者模式
支持个人/群聊/客服/社区资讯频道
支持频道黑明单
支持频道白名单
支持消息永久漫游,换设备登录,消息不丢失
支持在线状态,支持同账号多设备同时在线
支持多设备消息实时同步
支持用户最近会话列表服务端维护
支持指令消息
支持离线指令接口
支持 Webhook,轻松对接自己的业务系统
支持 Datasoure,无缝对接自己的业务系统数据源
支持 Websocket 连接
支持 TLS 1.3
支持 Prometheus 监控
监控系统开发
支持 Windows 系统 (仅开发用)
支持流式消息,类似 chatgpt 的结果输出流
架构图
独特性
群成员无上限,轻松支持 10 万人群聊,消息可永久存储。
资源消耗低
自研二进制协议,心跳包只有 1 字节,省流量,省电量,传输更迅速。
安全性
消息通道和消息内容全程加密,防中间人攻击和窜改消息内容,服务端数据实时备份,数据不丢失。
性能
基于 pebble kv 数据库,研发了针对于 IM 这种服务的特有分布式数据库,省了其他数据库为了通用性而带来的性能损耗, 因为存储快,所以消息快。
高可用
通过魔改 raft 分布式协议,实现了自动容灾,一台机器宕机,另一台机器自动接管,对外无感知。
去中心化,无单点,无中心节点,每个节点都是独立且平等的,都可以提供服务。
扩容方便,只需增加机器,不需要停机,不需要迁移数据,自动按策略分配数据。
易用性
不依赖任何第三方中间件,部署简单,一条命令即可启动。
采用频道订阅发布的设计理念,容易理解,容易上手。
与 Redis 一样简单,Kafka 一样高性能,MySQL 一样可靠。
部署方式
单机部署:
WuKongIM的单机可以很容易的扩容成集群,所以单机部署也是一种选择。
优点:部署简单,性能较好,支持在线扩容。
缺点:无法容灾,需要手动备份。
适用场景:小型应用,对数据安全要求不高的应用,后续量大可以扩容成集群。
集群部署:
优点:高可用,容灾性强,支持在线扩容,多副本之间实时自动备份,负载均衡等。
缺点:需要多台机器。
适用场景:对数据安全要求高的应用,大型应用。
最新版本:2.0
2024年11月发布的v2.0.6的改进如下:
feat: 消息轨迹可视化功能
feat: 后台管理 UI 升级
feat: 支持 Loki 来管理日志
fix: 修复统计在线用户数量不准的问题
fix: 修复客服频道不能发消息问题
refactor:将分布式 api 重构 / 拆分多个文件
fix: 解决更新设备时偶尔导致服务崩溃问题。
官方主页:https://githubim.com/