一款简单的可以跨平台 mq 架构设计
提供服务端和客户端代码,采用多对多的结构,可能方便切换不同的连接方式和不同的连接地址。
如果直连优先,系统会定时尝试切换连接,直到直连成功。
设计原则
简单,安全,自动重连。
三层架构:
- 通信连接层,实现不同的通信方式,如 tcp, websocket, udp 等
- 连接聚合层,管理不同的连接,重连等
- 用户接口
需要的功能
问题与优化
- 建立内存池来分配内存,减少内存碎片
- 同地址多连接共存,使用不同的连接发送消息,减少延时,提高消息送达可靠性
已经解决的问题
- 增加 gzip 的功能,只需要压缩数据部分
- 转发地址定时测试切换回到主服务节点
- 增加订阅中间件,处理验证登录等问题