您的位置:首页 > 其它

IM设计思考:试问

2012-03-24 21:17 197 查看
用过IM很多年了,直到最近才开始好好想想IM的实现需要考虑哪些方面?

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

1. 海量接入

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

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

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

2. 安全认证

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

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

自动登陆时的验证模式?

3. 消息转发

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

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

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

4. 离线消息

离线消息是否100%可靠?

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

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

5. 状态广播

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

6. 多点登陆

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

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

7. 关系管理

海量用户关系如何管理?

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

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

8. 多媒体通信

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

9. 文件传输

传输协议协商机制?

中转传输时的可靠性、并发能力和流量控制?(单台服务器可同时服务于多少用户的中转传输?)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: