找回密码
 会员注册
查看: 66|回复: 0

海量消息下王者荣耀在TDMQPulsar版的实践

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
64454
发表于 2024-9-21 03:43:52 | 显示全部楼层 |阅读模式
关于王者荣耀《王者荣耀》是由腾讯游戏开发的一款运营在Android、IOS平台上的MOBA类手游,属于多人联机在线竞技类游戏,于2015年11月26日在Android、IOS平台上正式公测。上线以来受到广大手游玩家的热爱,目前该游戏在手游排行中处于TOP1的位置。作为中国最火爆的手机游戏,“王者荣耀”,拥有亿级用户体量,千万级日活用户。而如此庞大用户体量带来的,也是服务端的挑战。如在游戏中产生的海量消息和数据交互,好友上线通知、开始游戏、赠送金币以及核心之一的交易链路,服务端如何敏捷快速实现上述海量消息场景,并解耦业务组件,是系统架构设计的一个难题。消息队列选型在游戏的实际运行中,大量的业务场景下存在消息数据交互,业务量有明显的波峰波谷,需要有一款消息队列中间件来承载该业务流程,实现上下游业务组件的松耦合,同时还需要具备灵活的扩展性。TDMQPulsar版进入了王者荣耀团队的技术选型视野。TDMQPulsar版由于其存算分离的架构,对于计算密集型的业务场景,仅需要添加计算层Broker,自动进行Rebalance;对于海量消息堆积,存储不足时,添加新的BK节点即可。在容灾支撑方面,TDMQPulsar版专业集群支持3AZ跨可用区部署,以确保发生可用区故障时,也能正常提供服务;同时还提供了跨地域冷备功能,支持快速切换接入点解析,实现无需客户端修改接入点地址,而实现跨地域的容灾方案,保障业务的延续性。在场景支撑方面,TDMQPulsar版承载了腾讯计费、中国银行、FiT等金融场景下的核心交易链路,同时也服务了火影忍者、蛙扑等游戏客户。从各方面来说,都非常匹配王者荣耀的需求。TDMQ ulsar 版产品介绍腾讯云TDMQforApachePulsar版(简称TDMQPulsar版)是基于ApachePulsar自研的消息中间件,具备极好的云原生和Serverless特性,计算存储分离的架构使其在扩缩容方面具备良好的底层优势。在完全兼容社区版的基础上,TDMQPulsar版还提供了重试&死信队列、消息标签过滤、消息轨迹等高级特性。目前TDMQPulsar版已经有较大规模的应用,如王者荣耀、猫眼、微民保险、QQ音乐、领星、长安汽车等,以及包括腾讯计费绝大部分场景,包括支付主路径、实时对账、实时监控、大数据实时分析等方面。TDMQ ulsar 版在王者荣耀中的应用方式弹性能力得益于存算分离的架构,使得TDMQPulsar版高度契合云原生,具有极强的可扩展性,为王者荣耀业务量的变化提供快速扩容能力,同时具备的热升级能力,使得扩容时对业务完全透明。发布订阅王者荣耀的消息场景下,存在大量的收发比超过「1比2」的情况,即:一处生产多处消费。同时,下游的消费端需要根据「消息标识」来消费指定的消息。TDMQPulsar版支持多种订阅模式,同时支持TAG消息标签过滤,方便王者荣耀的业务端简化业务逻辑处理流程。具体实现如图所示,应用于如用户界面操作,开始游戏、赠送金币等功能。实时交易王者荣耀的实时交易场景中,存在抽奖、购买等用户行为。那么,业务侧需要在用户发起操作后,对用户账户进行扣费操作,并在扣费完成后开始发货。详细的业务流程图,如下所示:由于涉及到货币交易,在该业务流程中,需要保证以下几点:扣费消息绝对不能丢失;业务环节较长,需要支持重试操作;需要支持延时消息,来延迟查询发货状态,减少服务端资源开销。TDMQPulsar版可以完美解决上述的需求。首先,消息存储默认为3副本,并通过Quorum机制,高效保证多副本之间的一致性;其次,通过重试队列和死信队列,支持业务客户端自定义消息投递的重试和死信队列,如重试多次后仍不能成功,则进入死信队列人工处理;最后,支持定时/延时消息,服务端来延时推送消息到下游消费者,无需客户端额外逻辑处理,简化业务实现。用户评价TDMQPlusar版支持按Tag订阅消息,在不同消费者消费同一Topic时通过指定不同的Tag减少了业务侧过滤消息的压力,提升了业务模块单机吞吐量减少了机器成本。TDMQ支持按照命名空间维度配置消息生产、消费速率,方便业务进行全局的流量控制,避免引入分布式限流组件,减少了业务的复杂度。随着业务使用量的增加,单集群生产/消费速率已突破40w/s,得益于TDMQ存算分离的架构,在扩容期间能够做到业务侧无感,同时生产消费耗时没有明显增长。配合便捷的监控告警配置,使得业务能够近乎实时的感知集群的生产消费状态异常,及时作出反应。往期推荐《腾讯云TDMQforApachePulsar多地区高可用容灾实践》《可观测新能力:TDMQPulsar支持接入Prometheus监控》《Pulsar产品新形态:弹性存储能力全新上线!》《云原生消息流系统ApacheRocketMQ在腾讯云的大规模生产实践》《云原生API网关链路追踪能力重磅上线》《Kafka分级存储在腾讯云的实践与演进》《ApacheRocketMQ5.0腾讯云落地实践》《RocketMQ5.XPopAck源码拆解》扫描下方二维码关注本公众号,了解更多微服务、消息队列的相关信息!解锁超多鹅厂周边!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-28 08:03 , Processed in 0.530302 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表