在社交类产品中,IM 的设计是非常重要的一环。而在此类产品设计中,为了能够实时的收发消息,业务通用的做法都是通过 TCP 长连接来实现。一个 IM 架构中,会分为好几个层次,或者模块。比如说 TCP 长连接层、路由层、业务层、存储层、用户中心等。
TCP 长连接层维持着与用户的长连接,那么长连接层怎么设计?有哪些设计关键点?
本文带你来一一梳理其中要点:
- 通过什么数据结构来合理的管理好长连接层的连接
- 需要能够快速根据用户找到连接,也需要能够根据连接找到对应的用户
- TCP 长连接超时怎么管理
- 服务端的连接怎么维持?客户端如果连接异常怎么剔除?
- TCP 长连接接入层负载均衡怎么设计
- 长连接层都有多个,怎么合理的设计,来做好负载均衡?如果新扩一台机器能否快速对其他机器减压?
- 如何优雅的重启长连接层,避免断开用户连接从而影响体验
- 长连接层和用户紧密相连,如果随意重启,用户的连接就会被断开,此时如果用户正在发消息,那么必然发送失败。因此需要能够优雅重启避免影响体验
- TCP 长连接层怎么防止恶意攻击
- 怎么防止别人对你的攻击?(建连攻击、发送消息攻击)
阅读全文: http://gitbook.cn/gitchat/activity/5e735b0c772c9a5214490fde
您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。