微信、陌陌等著名IM软件设计架构详解-低手解读

原文 :微信、陌陌等著名IM软件设计架构详解
1 什么是IP直连?
参考:
DNS优化之IP直连
android httpclient 服务器 ip 直连问题
(移动互联网中,DNS解析的失败率是联网失败中占比很大的一种。为了优化这个问题,我们使用了IP直连。即,从服务器拉取一个配置文件,里面包含域名到IP映射。客户端每次联网时根据域名在配置文件中查找到对应IP,直接使用IP进行请求……)
2 protobuf 是什么协议?
参考:
开源点评:Protocol Buffers介绍
(简单地说,这个东东干的事儿其实和XML差不多,也就是把某种数据结构的信息,以某种格式保存起来。主要用于数据存储、传输协议格式等 场合。有同学可能心理犯嘀咕了:放着好好的XML不用,干嘛重新发明轮子啊?!先别急,后面俺自然会有说道。话说到了去年(大约是08年7 月),Google突然大发慈悲,把这个好东西贡献给了开源社区。这下,像俺这种喜欢捡现成的家伙可就有福啦!貌似喜欢捡现成的家伙还蛮多滴,再加上Google的号召力,开源后不到一年,protobuf的人气就已经很旺了……)
3 如何针对弱网络优化协议?
这里写图片描述
4 智能路由、连接策略有哪些?
多端口、双协议支持
应对移动网关代理的端口限制
支持TCP、HTTP两种协议
根据备选IP列表进行并发测速(IP+端口+协议)
后端根据终端连接情况,定时更新终端的备选IP列表
终端在连接空闲时上报测速数据,便于后端决策
TCP协议不通,自动切换到http
优先使用最近可用IP
并发测速,根据终端所处的位置下发多组IP、PORT,只用IP,不用域名,手机上的DNS50%不准
负载均衡器(LVS…)的问题– 单点失效
单点性能瓶颈
负载均衡从客户端开始做起• 域名负载的问题
域名系统不可靠– 更新延迟大
5 客户端优化
–使用一收一发的消息队列方式处理
–使用Android service可被系统随时唤醒
–独立进程,更轻量与app进程互不影响
–使用native socket精确调优、提高成功率
–多线程连接多个后台,最快建立连接,连接测速,记录最优ip(如何测速????记录响应时间?
–保持长链接,不使用http协议,反域名劫持,IP直连
–添加重试策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值