百万级并发IM即时聊天系统架构
2022-08-12 10:04:07 0 举报
支持百分级别在线聊天,群聊,私聊等
作者其他创作
大纲/内容
生产
http端口1. Token登录校验2. 消息风控校验3. 消息转发到websocket服务websocket端口1. 与客户端建立长链接2. 负责底层消息包转发
Redis
websocket端口
用户A
消费
Kafka
负载均衡
A发B消息流程
http端口
用户B
建立长链成功
消息转发通知(session共享)
message-dispatch
websocket-server1
http接口通知
websocket-server2
1. A与websocket-server1(wb1),B与websocket-server2(wb2)分别建立长链成功。2. wb1将A的socket通道存储到本地映射表,并且缓存一份到redis(A : wb1-IP),wb2同理。3. wb1接收到A消息,从本地socket通道映射表查找B通道是否存在,若存在,则直接转发消息到B。若不存在则从redis获取通道B的ip。4. web1 向kafka生产一条消息,转发消息B(带有B通道的IP)。5. message-dispatch集群消费上面的消息,通过http指定ip地址通信到wb2。6.we2 的http端口收到转发消息,内部分发的websocket长链接上,最终把消息转发到用户B
用户ID与端点信息映射
websocket服务集群
Nginx
消息分发集群
0 条评论
下一页