专栏首页逸鹏说道80.8亿个微信红包技术难点在哪里?

80.8亿个微信红包技术难点在哪里?

摘要:今年除夕当日微信红包的参与人数达到4.2亿人,收发总量达80.8亿个,是羊年除夕10.1亿个的8倍。最高峰发生在00:06:09,每秒钟收发40.9万个红包。但是,红包大战受欢迎的程度和完美支撑红包大战的技术难度成正比。

面对如此海量的业务高并发性,其支撑系统面临着极大的挑战,腾讯云是如何在高可用保障和性能优化上苦练内功,为微信春节保驾护航的?

高可用保障,确保红包系统的正常运行

为了保障全国用户发红包时预订单系统可以快速响应,微信用户侧发起的相关请求会在腾讯云广州和上海的云机房做分流,部分访问到广州云机房,部分访问到上海云机房。

同时为了保证预订单系统的高可用性,分别部署了同城多可用区的应用容灾以及同城预订单系统多可用区数据双写等措施,即使广州和上海的某个可用区同时故障,预订单系统仍会在同城的另一可用区的灾备机房正常工作,不会影响用户的发红包业务。

作为微信红包系统中另一个重要的应用系统,列表系统用来处理用户抢、拆、发、查红包的数据处理。该系统又分为详情列表、收列表以及发列表,因为红包所有的业务场景都会牵涉到对详情列表的操作,所以详情列表的部分,腾讯云同时在上海和广州分别部署了两套系统,同时实现了同城和异地的应用容灾,即使其中三套宕机,仍旧不会影响用户查看自己的红包详情。

至于列表系统中的收列表和发列表系统,腾讯云目前在广州多可用区实现了同城应用容灾,如果用户从腾讯云上海云机房的接入侧发起的针对收发列表的操作请求会经过专线访问到腾讯云广州机房的收发列表系统。这部分就产生了穿越流量。

在数据库的持久化层,通过DBProxy实现了数据库的分库分表,同时持久化的存储系统CDB集群也实现了同城的应用灾备。

如果用一张图来表现的话是这样的▼

微信红包中核心的预订单系统和列表系统均是采用分层多地区,多机房部署、架构横向扩展、基础组件模块化,结合业务逻辑实现同城和异地的应用容灾。

上图中所有的模块全部是横向扩展架构,各个模块可以实现节点间的负载均衡和故障剔除,从而保障单个模块的高可用性,这是腾讯云为红包大战护航的一个重要保障。

性能优化,全面提升用户体验

预订单系统和列表系统的高可用性保证了微信红包系统的正常运行,而对云服务器、数据库等产品的性能优化则能带给用户更好的体验。要想顺利的克服红包大战中流量、数据、计算等方面的挑战,还需要不断提升产品的性能。

微信红包业务的接入,用到了上千台的接入云服务器和超高QPS配置的CMEM缓存持久化数据库CDB,该系统可支撑每分钟发出600w个红包,每分钟拆开4800w个红包。

云上微信红包的这套系统的请求处理能力和读写能力也都做到了业界领先的水平。在逻辑接入层,腾讯云可以提供高达700wQPS的请求处理能力;在CMEM缓存层,能够提供高达660WQPS的memcached读写能力,在数据库持久化层也可以提供高达100WQPS的MySql读写能力。

无论是云服务器、数据库的选择,还是对接入层、缓存层和数据库持久化层的精益求精,腾讯云在各个层面对于性能优化都是为了顺利护航红包大战在积累能量。

「微信」都使用了那些技术和工具?他又是怎样从0到1发展起来的?

https://www.sdk.cn/companies/624

本文分享自微信公众号 - 我为Net狂(dotNetCrazy),作者:腾讯云

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-02-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微信模糊照片破解方法(程序猿专用)

    1月26日,微信悄然上线红包照片功能,推出红包新玩法。 ? 用户点击发布朋友圈按钮,可以看见“红包照片”选项,选择发布照片后,该照片将被模糊处理发送到朋友圈,好...

    逸鹏
  • ★Kali信息收集★8.Nmap :端口扫描

    突然发现,微信一次最多推送8篇 参数:(Zenmap是Nmap图形化工具,不想打指令的可以直接使用) 详细:https://nmap.org/man/zh/in...

    逸鹏
  • 异步方法不能使用ref和out的解决方法

    异常处理汇总-后端系列:http://www.cnblogs.com/dunitian/p/4523006.html ? 应用场景==》后端现在都是用异步方法...

    逸鹏
  • 网平别样除夕夜

    "鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网...

    鹅厂网事
  • 【GNN】一份简短入门《图神经网络GNN》笔记小册

    图神经网络(GNN)是一种学习图结构的神经网络。学习图结构允许我们在欧几里德空间中表示图的节点,这对于一些下游的机器学习任务非常有用。最近关于GNN的工作在链接...

    zenRRan
  • 你真的会用Android中Strings资源吗

    Android为了帮助开发者把应用更方便发布给全球不同语言的人们使用,建议开发者在进行开发时不要把UI呈现相关的文本内容硬编码,而是把内容写入到strings....

    非著名程序员
  • 技术人初尝带队作战 -- 指导一次腾讯 SNG MINI 项目

    2018年暑假,有幸参加了首次腾讯 SNG MINI 项目 的改版试验——导师制 + 定向命题。MINI 项目是在短时间内通过组队、设计并独立完成一个完整产品...

    李成熙heyli
  • 谷歌draco

    Draco 由谷歌 Chrome 媒体团队设计,旨在大幅加速 3D 数据的编码、传输和解码。因为研发团队的 Chrome 背景,这个开源算法的首要应...

    点云PCL博主
  • IE中iframe跨域访问

    1      什么叫跨域?        指在A系统(第一方)中通过URL直接调用B系统(第三方),并且两个系统分别部署在不同的域内,简单的理解就是访问这两个系...

    高爽
  • 关于编程学习的两点建议

    在初步进入编程语言学习的过程中,有许多意想不到的困难。在这里向大家有两点小的提醒。

    KEVINGUO_CN

扫码关注云+社区

领取腾讯云代金券