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

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

1. 海量接入

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

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

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

2. 安全认证

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

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

自动登陆时的验证模式?

3. 消息转发

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

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

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

4. 离线消息

离线消息是否100%可靠?

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

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

5. 状态广播

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

6. 多点登陆

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

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

7. 关系管理

海量用户关系如何管理?

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

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

8. 多媒体通信

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

9. 文件传输

传输协议协商机制?

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

踏莎行·术 - IM设计思考:试问相关推荐

  1. 踏莎行·术 - IM设计思考:XMPP安全机制

    XMPP(Extensible Messaging and Presence Protocol)是一个应用于实时通信的开放协议,定义了有关即时消息通信的各方面内容,本文主要是关于XMPP安全机制的介绍 ...

  2. 踏莎行·术 - IM设计思考:XMPP消息格式

    交换消息是XMPP的一个基本用途并且随之而来的是一个用户生成一个发给另一个实体的消息节. XMPP定义的消息节语法完整格式如下: <messagefrom='juliet@example.com ...

  3. 踏莎行·术 - IM设计思考:XMPP资源绑定

    XMPP协议设计中引入了一个抽象的资源绑定过程,何为资源,如何绑定? 首先这得从JID的格式设计说起,JID是XMPP前身Jabber协议ID的简写,用于唯一标识一个客户身份.一个合法的 JID 包括 ...

  4. 踏莎行·术 - IM设计思考:点对点消息交换

    IM最基本的功能就是即时消息交换,那么一个送出的消息将经历哪些过程才能最终送达目的地? 下面给出一个过程描述: 1. 消息从客户端发出经过网络由客户端所直接连接的服务器接收 2. 接入服务器接收到网络 ...

  5. 单相直直斩波电路 matlab仿真,(完整word版)斩波电路Matlab仿真电力电子技术课程设计....

    图2-3α=80%时电源电压,负载两端电压,脉冲信号和流过负载电流波形 当占空比α=80%时,电源电压100V,负载两端电压为500V. 3.升降压斩波电路的仿真研究 3.1电路原理图 升降压斩波电路 ...

  6. 面试必备:一个秒杀系统的设计思考

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:阿哲 segmentfault.com/a/11900000 ...

  7. 用thinkphp进行微信开发的整体设计思考

    用thinkphp进行微信开发的整体设计思考 http://www.2cto.com/weixin/201504/388423.html 2015-04-09      0个评论       作者:明 ...

  8. 一个秒杀系统的设计思考

    简介:从架构视角来看,秒杀系统本质是一个高性能.高一致.高可用的三高系统.而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题. 秒杀大家都不陌生.自2011年首次出现以来,无论是双 ...

  9. 【忘川风华录】雅社——公会社交系统交互设计思考

    GameTube邀请忘川交互团队分享设计中的经验和感受.本次为<忘川风华录>交互设计师[丸子]分享公会系统的设计思考.此篇为忘川设计复盘系列完结篇~ 期待之后会有更多交互同学分享设计的经历 ...

最新文章

  1. lnmp一键安装脚本
  2. python 文件读写找不到文件-python之文件读写
  3. C#,silverlight中 将颜色字符串的RRGGBB转换成为颜色
  4. Linux-0.00 代码解析(三)
  5. 分享百度文库提交成功的八大因素
  6. 如何使用反意疑问句来确认请求_24
  7. python之变量的私密处理
  8. 1025. 除数博弈
  9. Gadget,又见Gadget - 浅尝Windows Live Contacts Gadget
  10. VS2005项目的安装与布署,包括卸载
  11. 计算机网络安全技术实验教程,网络安全实验教程
  12. Win7安装VMware Tools问题
  13. fisher精确检验(fisher’s exat test)和超几何分布
  14. c#物联网_毕业季我与你招聘信息中移物联网
  15. 我的政治理想《爱因斯坦文集》
  16. MySQL知识点整理汇总
  17. linux 系统安装aria2以及配置web端
  18. 二极管、三极管、MOSFET管知识点总结
  19. python dfs
  20. cobol .cpy文件_Visual COBOL R3:“使传统的COBOL能够部署在JVM或.NET上”。

热门文章

  1. 合肥达内培训php,合肥达内培训PHP四大基础算法
  2. vue父子组件之间传值的方法
  3. linux一步一脚印---stat
  4. 百度贴吧怎么进不去_百度贴吧怎么留微信号?
  5. 【图像加密】DFT变换算法
  6. 安卓 文本框怎么贴近边缘_PS教程:怎么用文字组成人脸
  7. 前端学PHP之字符串函数
  8. 电子计算机模拟考试word,职高计算机模拟考试-
  9. java如何设置1.5倍行距_【转】如何解决mathtype公式拉大word中行间距的问题
  10. MAC版php开发工具推荐:10款最流行的mac版php开发工具