微信、陌陌等著名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直连
–添加重试策略

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信陌陌是两个著名的即时通讯软件,它们的设计架构具有以下特点。 首先,微信架构可以分为客户端和服务器端两部分。客户端采用C++语言开发,支持主流的移动操作系统,包括iOS和Android。服务器端主要分为消息中心、用户管理、资源存储和推送服务等模块,通过分布式架构实现高可用性和高性能。 其次,微信客户端的架构采用MVC(Model-View-Controller)模式。模型(Model)层负责处理数据请求和数据存储,视图(View)层负责界面的展示,控制器(Controller)层负责处理用户操作和业务逻辑。这样的分层结构使得代码更加清晰、易于维护。 再次,微信的核心功能包括即时通信、社交、支付、公众号等。在即时通信方面,微信通过建立长连接,并采用自定义通信协议和加密算法,保证了消息的安全和可靠传输。在社交方面,微信实现了好友关系、群聊等功能,同时提供了朋友圈等社交媒体功能。支付方面,微信集成了多种支付方式,方便用户进行在线交易。公众号则为企业和个人提供了内容推送、客服等服务。 与微信相比,陌陌架构设计更加简洁。陌陌也分为客户端和服务器端两部分。客户端采用Objective-C和Java语言开发,同样支持主流的移动操作系统。服务器端采用分布式架构,包括用户服务器、消息服务器和推送服务器等模块,以满足大规模用户访问的需求。 陌陌的核心功能是附近的人和短信。附近的人通过获取用户的地理位置信息,将附近的其他用户展示给用户,并提供了聊天、发动态等功能。短信则是陌陌提供的一种语音通讯方式,用户可以发送语音消息给好友。同时,陌陌还提供了社交游戏、红包等功能,丰富了用户的交互体验。 总的来说,微信陌陌都是基于分布式架构设计的著名IM软件,它们在安全性、性能、功能丰富等方面都具备优势,为用户提供了便捷的即时通讯和社交功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值