温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
社交软件红包技术解密5。本次分享介绍了微信红包后台系统的高可用实践经验,主要包括后台的set化设计、异步化设计、订单异地存储设计、存储层容灾设计与平行扩缩容等。听众可以了解到微信红包后台架构的设计细节,共同探讨高可用设计实践上遇到的问题与解决方案。二、微信红包介绍微信红包的业务包含包发、抢拆、查询、发送红包和收红包数量,其中最关键的步骤是发红包和抢红包。三微信红包的系统流程下图是微信红包系统角度上的流程,业务主流程是包、发、抢拆四个操作,每个操作包括几个关键步骤?四微信红包的整体架构上图所示是微信红包的系统架构,包括微信统一接入层,下面是微信红包系统API,包括发、抢、拆、查红包详情、查红包用户列表。系统的可用性影响因素可分成两类,一类计划外,一类计划内。
01:06
计划外包含很多因素,系统用到的所有东西都可能产生故障,都可能成功影响可用性的因素。计划内的影响因素主要有与升级相关运维相关的操作以及日常的备份等。基于上面两个分析结论,可以总结出微信红包后台系统的可用性的设计方向,就是在不能避免意外故障的情况下,尽可能降低出现意外故障时对可用性的影响。另一方面,绝大多数计划内的日常维护可以通过方案的设计避免影响可用性。其中平行扩容特指关于存储层的平行扩容业务逻辑层杠异步化设计,如下图所示,微信红包的某些步骤不实时完成,也不会影响用户对红包业务可用性的体验。下图是2014年微信红包存储层的模型,业务逻辑层请求数据层操作时使用订单号hash路由到订单server,订单server与每一组MYSQL数据库连接,如下图所示。所涉尾号90-99的set故障时,如果业务逻辑服务后续不再生成属于这个set的订单,那后续的业务就可以逐渐恢复。
02:20
7平行扩缩容设计下图是微信红包早期的扩缩容方式,这个扩容方式对扩容的机器属有限制,过程也比较复杂。改进后的平行扩容。
我来说两句