现在的位置: 首页 > 综合 > 正文

IM设计思考:试问

2019年06月15日 ⁄ 综合 ⁄ 共 657字 ⁄ 字号 评论关闭

用过IM很多年了,直到最近才开始好好想想IM的实现需要考虑哪些方面?

特别是在海量用户的IM环境下,需要考虑哪些方面,自己大概思考了下总结如下:


1.  海量接入

QQ的最高在线用户超过了1亿,那么大约每台服务器能接入多少用户?

如何将海量的登陆用户平均负载到接入服务器集群?

某台接入服务器过载崩溃时如何平滑转移,避免“多米诺”骨牌效应。


2.  安全认证

登陆认证时如何保障安全?何种加密机制,验证方式?

消息传递时的安全性,加密或不加密?

自动登陆时的验证模式?


3.  消息转发

不同用户可能登陆在不同的服务器上(存在跨IDC机房可能),如何保证即时性和可靠性?

如何定位用户的登陆位置进行转发?

每条消息的大小限制多少?


4.  离线消息

离线消息是否100%可靠?

每个用户允许多大的离线消息存储?

离线消息是否有过期时间?如何管理?


5.  状态广播

上线、下线、离开、用户自定义等多种状态消息向好友的转播,可能形成的广播洪流拥塞网络如何解决?


6.  多点登陆

如何支持用户多点登陆(PC、手机、PAD同时登陆)?

多点登陆的情况下消息如何转发,状态如何通知?


7.  关系管理

海量用户关系如何管理?

允许每个用户关联多少好友?(关联的数目越多关系数据网越复杂,对消息和状态通知带来更大压力)

好友关系的版本管理机制如何设计?(方便和本地客户端对比,减少网络传输流量,进行差异更新)


8.  多媒体通信

复杂网络环境下的语音、视频如何通信,协议协商?


9.  文件传输

传输协议协商机制?

中转传输时的可靠性、并发能力和流量控制?(单台服务器可同时服务于多少用户的中转传输?)

抱歉!评论已关闭.