即时通讯架构-陌陌

上传人:蜀歌 文档编号:146026966 上传时间:2020-09-25 格式:PDF 页数:24 大小:1.02MB
返回 下载 相关 举报
即时通讯架构-陌陌_第1页
第1页 / 共24页
即时通讯架构-陌陌_第2页
第2页 / 共24页
即时通讯架构-陌陌_第3页
第3页 / 共24页
即时通讯架构-陌陌_第4页
第4页 / 共24页
即时通讯架构-陌陌_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《即时通讯架构-陌陌》由会员分享,可在线阅读,更多相关《即时通讯架构-陌陌(24页珍藏版)》请在金锄头文库上搜索。

1、即时通讯架构 陌陌/李志威/CTO “社交,是人们运用一定的方式(工具)传递信息, 交流思想,以达到某种目的的社会活动。” 常见于 即时通讯,私信应用 游戏服务器 长连接信息推送 通讯服务器组成 iOSAndroid 客 户 端 WP IM Connector连接集群LVS Logic逻辑集群 服务化数据集群(Session/Message) 数 据 层 消息中转 ConnectorConnector Logic Session ClusterMessage Cluster User AUser B 1 2 34 5 6 Logic “对安全性、高可用、扩展性的要求越高,架构的 变化越大。”

2、iOSAndroid 客 户 端 WP IM Connector连接集群LVS Logic逻辑集群 服务化数据集群(Session/Message) 数 据 层 连接层 1. 连接层的作用 2. “允许随时重启更新/ 只允许晚上重启/不允 许重启断线” 3. 总的来说简单/异步 陌陌连接层 总连接数 1200万+ 单台服务器压测70万连接,一般使用50%(主流配置) iOSAndroid 客 户 端 WP IM Connector连接集群LVS Logic逻辑集群 服务化数据集群(Session/Message) 数 据 层 逻辑层 1. 用户会话验证 2. 消息存取 3. 异步队列 4. 随

3、时重启 iOSAndroid 客 户 端 WP IM Connector连接集群LVS Logic逻辑集群 服务化数据集群(Session/Message) 数 据 层 通讯协议 “ 安全性要求 流量要求 传输要求可靠&高效 ” 通讯协议 常见协议XMPP/SIP 缺点:1.流量大 2.不可靠 3.交互复杂 ClientServer WIFI/2G/3G/地铁/电梯 10ms/200ms/12s/TCP half-closed 通信协议设计 目标: 高效:弱网络快速的收发 可靠:不会丢消息 易于扩展 协议格式 Flag LengthData Flag LengthData msg:良好的协议可

4、以: 简化系统设计 提供可靠个高效的消息传输 易于扩展需求 Flag LengthData REDIS协议 *number of argumentsCR LF $bytes of argument 1CR LFdataCR LF $bytes of argument 2CR LFdataCR LF SET name latermoon * 3 $ 3 SET $ 4 name $ 9 latermoon $bytes of argument 3CR LFdataCR LF Redis协议 下面都用Redis协议来描述逻辑 READ REDIS COMMAND 基于队列的消息协议 FIFO ms

5、g6 msg5 msg4 msg3 msg2 msg1 S: msg-send msg1 C: msg-recv 1 S: msg-send msg2 C: msg-recv 2 S: msg-send msg3 msg4 msg 5 msg 6 C: msg-recv 3 4 5 6 Redis List: 基于队列的交互 ClientServer msg-send msg-recv msg-send msg-recv msg-send msg-recv List Base 传统的IM协议 前提是基于网线、WIFI,网络延迟极 小 移动网络下,交互极其费时,服务器 要维护每个状态容易出错 “

6、通讯协议优化,尽量减少一次交互中数据往返的 次数。” 基于版本号的消息协议 VersionMessage 106msg 105msg 104msg 103msg 102msg 101msg Redis Sorted Set: S: msg-psh C: msg-sync S: msg v 101 msg S: msg v 102 msg S: msg v 103 msg S: msg v 104 msg C: msg-fi n v 104 基于版本号的交互 ClientServer msg-psh msg-send msg-sync msg-send msg-send msg-fi n Sorted Set Base msg-send 针对弱网络的优化协议 消息通过版本号维护顺序 新消息到达,Server只负责push通知 Client收到轻量的msg-psh后发出同步 请求 Server按照版本号连续发送msg Client告诉Server收到最后的版本 其它问题 核心的长连接只用于传输轻量的实时数据 图片、语音等都可以开新的TCP或HTTP连接 “一切就绪后,最重要的就是监控。” 监控 “完”

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号