读微信一亿用户背后架构秘密

微信很风靡,也很正常,一定有标杆。

官方人士把微信的成功归结于腾讯式的“三位一体”策略:即产品精准、项目敏捷、技术支撑。

凡人不应该这么看,首先一条“产品精准”即可略过,TC的山寨文化根深蒂固,“产品精准”更适合解释其内部的生态环境。

第二条“项目敏捷”,这个是利器。

(1)敏捷是积极态度的表征,积极态度是更接近于好运的阶梯,好运是成功的关键要素。

(2)微信必须要容忍说哪怕在发布前的十分钟,也要允许他变更。

(3)研发团队所做的一切都是要给产品决策者有最大的自由度,而这个决策正是微信能够胜出的关键。

(4)如何敏捷?

  • 狂热的技术信念:勿容置疑,这个是必须的。
  • 大系统小做:当设计庞大系统的时候,应该尽量分割成更小的颗粒,使得项目之间的影响是最小的。民间俗称“解藕”。微信做到的不仅仅是逻辑解藕,更是做到了部署解藕。将不同的应用逻辑物理分割独立出来,把关键的逻辑混搭在一起,拆分成8-10种做分离部署。
  • 一切可扩展:在高稳定度、高性能的系统中间,为了稳定性能把它设计成不变化的系统,但为了支持敏捷需要让一切的东西都要变得可以扩展。网络协议需要扩展,可以通过XML描述,再通过工具自动生成所有的代码,这是微信获得快速开发的一个重要的点。数据存储方面是必须可扩展的,会采用KV或者TLV的方式。
  • 必须建立基础组件:要解决复杂问题的时候,需要将已有的经验固化下来,固化下来的东西会成为系统中的一部分。
    • Client/Server自动代码生成框架,10分钟搭建内部服务器
    • 逻辑容器:随时添加新逻辑
    • OssAgent——监控/统计框架:所见即所得的监控报表
    • 存储组件——屏蔽容灾/扩容等复杂问题
  • 轻松上线:当做了变化并把它从开发环境中部署到现有的运营环境中去,在这个过程中,“灰度”这个词非常关键,就是在黑和白之间的选择,必须要变成一种小规模尝试,再逐步扩展到海量过程中的一个问题。

第三条技术支撑,实力见证

(1)架构图



 

(2)技术挑战

  • 从微信的设计中,不管在线还是离线系统表现都应该是一致的
  • 手机信号强弱的变化带来不稳定的因素
  • 如何最小化传输的问题
  • 如何应对高延迟的问题

(3)基于状态同步的协议

  • 微信在系统中做了特殊设计,叫SYNC协议,是参考Activesyec来实现的。特点首先是基于状态同步的协议,只需要推送一个消息到达的通知就可以了,终端收到这个通知就来做消息的同步。
  • 状态同步可以通过状态同步的差值获得最小的数据变更,通过增量的传输得到最小的数据传输量。通过这样的协议设计,微信可以确保消息是稳定到达的,而且是按序到达。

引用一句话做结尾,可怕的不是微信,真正可怕的是,比你领先比你更有天赋的团队比你更努力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值