Lexus. 2022-07-29 19:12 采纳率: 0%
浏览 42
已结题

webSocket+Netty-SocketIO实现IM方案讨论

发生背景

使用websocket + netty-socketio + MQ实现一个简易在线聊天系统,可以支撑每天10w用户在线聊天。

实现原理

websocket作为主要的信息发送渠道,后端存储socket句柄,MQ作为集群环境下寻找会话两端绑定句柄的媒介,相信用过此思路的朋友应该明白整个架构了,要是不明白呢,请看下面分解

图文并茂

img

1、上图当A给B发消息时,消息里面一定是包含A给B发消息这个信息。问题:程序如何把这个消息发送给B?
分析:A给B发消息,首先这个消息肯定是落在集群1节点,现在我们知道B在集群4节点,那么问题就变成怎么把集群1的消息送到送到集群4节点?

2、MQ的作用,消息广播,所有服务器来接收A的消息,来寻找目标句柄B,找不到就丢弃消息,蠢萌蠢萌的方案就解决了该问题。如下图:

img

3、那么问题就来了,有什么更优的方案,直接找到B所在的集群4节点呢

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月6日
    • 修改了问题 7月29日
    • 创建了问题 7月29日

    悬赏问题

    • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
    • ¥15 向数据表用newid方式插入GUID问题
    • ¥15 multisim电路设计
    • ¥20 用keil,写代码解决两个问题,用库函数
    • ¥50 ID中开关量采样信号通道、以及程序流程的设计
    • ¥15 U-Mamba/nnunetv2固定随机数种子
    • ¥15 C++行情软件的tick数据如何高效的合成K线
    • ¥15 vba使用jmail发送邮件正文里面怎么加图片
    • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
    • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战