有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
TDMQ RocketMQ 版是基于 Apache RocketMQ 构建的分布式消息中间件,应用于分布式系统或组件之间的消息通讯,具备海量消息堆积、低延迟、高吞吐、高可靠、事务强一致性等特性,满足异步解耦、削峰填谷、顺序收发、分布式事务一致性、日志同步等场景需求。

异步解耦

交易引擎作为腾讯计费最核心的系统,每笔交易订单数据需要被几十个下游业务系统关注,包括库存系统、仓储系统、促销系统、积分系统等,多个系统对消息的处理逻辑不一致,单个系统不可能去适配每一个关联业务。此时,TDMQ RocketMQ 版可解除多个业务系统之间的耦合度,减少系统之间影响,提升核心业务响应速度和健壮性。




削峰填谷

企业不定时举办的一些营销活动,新品发布上线,节日抢红包等,往往都会带来临时性的流量洪峰,这对后端的各个应用系统考验是十分巨大的,如果直接采用扩容方式应对又会带来一定的资源浪费。RocketMQ 可以应对突发性的流量洪峰,在峰值时堆积消息,而在峰值过去后下游系统慢慢消费消息,解决上下游处理能力不匹配,提升系统可用性。




订阅通知

消息队列 RocketMQ 版提供的定时、延迟等能力,满足需要订阅通知的电商场景。
定时消息:消息在发送至服务端后,实际业务并不希望消费端马上收到这条消息,而是推迟到某个时间点被消费,这类消息统称为定时消息。
延时消息:消息在发送至服务端后,实际业务并不希望消费端马上收到这条消息,而是推迟一段时间后再被消费,这类消息统称为延时消息。
关于定时与延迟消息的详细内容,请参见 定时与延迟消息




分布式事务一致性

RocketMQ 提供分布式事务消息,使应用之间松耦合 ,可靠传输与多副本技术能确保消息不丢失,At-Least-Once 特性确保数据最终一致性。
支付系统作为生产者,与消息队列,组成一个事务,保障本地事务和消息发送的一致性。
下游业务系统(账单、通知、其它),作为消费者,并行处理。
消息支持可靠重试,保证数据最终一致性。
使用消息队列 RocketMQ 版的事务消息来处理交易事务,可以大大提升处理效率和性能。计费系统的交易链路通常比较长,出错或者超时的概率比较高,这时会借助 TDMQ 的自动重推和海量堆积能力来实现事务补偿,同时支付 Tips 通知和交易流水推送可以通过 RocketMQ 来实现最终一致性。
关于事务消息的详细内容,请参见 事务消息




顺序收发

顺序消息是消息队列 RocketMQ 提供的一种高级消息类型,对于一个指定的Topic,消息严格按照先进先出(FIFO)的原则进行消息发布和消费,即先发送的消息先消费,后发送的消息后消费。顺序消息常用于以下业务场景:
订单创建场景:在一些电商系统中,同一个订单相关的创建订单消息、订单支付消息、订单退款消息、订单物流消息必须严格按照先后顺序来进行生产或者消费,否则消费中传递订单状态会发生紊乱,影响业务的正常进行。因此,该订单的消息必须按照一定的顺序在客户端和消息队列中进行生产和消费,同时消息之间有先后的依赖关系,后一条消息需要依赖于前一条消息的处理结果。
日志同步场景:在有序事件处理或者数据实时增量同步的场景中,顺序消息也能发挥较大的作用,如同步 mysql 的 binlog 日志时,需要保证数据库的操作是有顺序的。
金融场景:在一些撮合交易的场景下,比如某些证券交易,在价格相同的情况下,先出价者优先处理,则需要按照FIFO的方式生产和消费顺序消息。
关于顺序消息的详细介绍,请参见 顺序消息





分布式模缓存同步

企业举办打折促销活动时,产品种类繁多并且价格频繁变动,用户访问较多次商品价格查询,缓存服务器网卡满载,影响页面的打开速度。使用 TDMQ RocketMQ 版的广播消费模式,那么这条消息会被所有节点消费一次,相当于把价格信息同步到需要的每台机器上,取代缓存的作用。