千万级同时在线,主要解决问题是高可用性和高可运维性。他主要从以下5个方面讲:
1.原来的qq群业务做成集群,到后来的多种业务都做成集群处理
2.容灾处理。
大的方面,所有业务放在两个IDC(internet data center)里,应对整体故障。
小的方面,存储集群分主从服务器,为半自动切换模式:主服务器死机多数命令不受影响,从服务器死机业务不受影响。业务集群、接入集群和同步集群为自动切换模式:死机其他均不受影响。
设置指挥集群,定时收集业务集群的状态,反馈到接入集群中去,如果出现某个业务机器死机的情况,接入集群会把新的业务请求分配给别的业务机器上去。
3.针对新推出的代码bug涌现的问题:代码review和灰度发布,分时间分批次地将新的代码加入业务中,根据用户的反馈及时作出调整和修改。
4.完善监控、报警。针对机器的异常或者业务状态的异常,及时发现处理。
5.运维自动化。淘汰原来通过vim或者mysql的操作,通过web半自动化的运维。
亿级用户同时在线,原来的架构灵活性不够好,增加新的业务需要打补丁,还要应对新的情况:微信崛起、用户多点登陆、隐私权限控制等,腾讯设计了IM(Instant Messenger)4.0架构,是重新设计实现的,要有高性能、高可用性、高可运维性、高灵活性这些优点。据庄老师讲,物理架构详细到机架的摆放,可见用功之深啊。
他对逻辑架构和物理架构是一笔带过,可能和原来的很类似。
某些功能很新颖,例如区域自治:某一地区和外部的网络连接断了,这一地区的用户也是可以登录并和本地区的用户聊天,实现某些业务;监控分析智能化;可接入5-10亿个用户实例;百亿级的关系链对数;每天千亿级的服务请求;保持99.99%的高可用性。
总之,虽然现在腾讯做了很多很好别的业务,但IM服务仍是腾讯帝国的基石,也是未来全球化战略的重要一环。