头图

导语

消息队列 RocketMQ 版(TDMQ for RocketMQ,简称 TDMQ RocketMQ 版)在今日正式公测!TDMQ RocketMQ 是TDMQ系列产品中的一款分布式高可用的消息队列服务,兼容 Apache RocketMQ 的各个组件与概念,RocketMQ 4.6及以上版本的客户端几乎零改造接入。欢迎大家扫描文末二维码使用体验!

TDMQ RocketMQ 版的背景

RocketMQ作为典型的业务处理消息队列,主要用于处理订单,支付,积分等业务类型,对信息交换的准确性有极高的要求,它的核心架构:生产者端、服务端(NameServer和Broker服务实例)、消费者端就很好的满足了这一点。

TDMQ RocketMQ 版(Tencent Distributed Message Queue for RocketMQ)是腾讯打造的一款分布式消息队列产品,具备强一致、高可靠、高性能的特性。兼容开源RocketMQ 4.6及以上的客户端,支持顺序消息、事务消息、集群/广播消费模式等原生能力,并具备计算存储分离,灵活扩缩容的底层架构,广泛应用于各类电商、金融、游戏、政务等行业。

TDMQ RocketMQ 版产品优势

TDMQ RocketMQ 版能较好地应对各类营销活动带来的流量冲击,非常适用于顺序性以及事务性要求较高的场景,在电商交易、金融结算等领域有着十分广泛的应用。

  • 兼容开源

兼容 Apache RocketMQ 的各个组件与概念,支持 RocketMQ 4.6及以上版本的客户端零改造接入,同时具备计算存储分离,灵活扩缩容的底层优势。

  • 资源隔离

为更好适配云上使用的场景,TDMQ RocketMQ版做了多层级的资源结构,不仅基于命名空间做了虚拟隔离,也在集群维度做了物理隔离。支持在命名空间维度为客户端配置权限校验,区分不同环境的客户端,方便灵活。

  • 分片存储

相比于开源版本不同的是,TDMQ RocketMQ对于消息数据采用分片的方式进行持久化,不容易产生数据倾斜等问题。当由于扩容、机器故障等导致的节点新增、删除时,不会触发重平衡而导致整个集群的吞吐急剧下降。

  • 丰富的消息类型

支持普通消息、顺序消息、延时消息、分布式事务消息等多种消息类型,支持消息重试和死信机制,满足各类业务场景。

  • 高性能

单机最高可支持上万级别的生产消费吞吐,分布式架构,无状态服务,可以横向扩容来增强整个集群的吞吐。

  • 易用免运维

提供 API 访问接口,支持开源所有语言和版本的 SDK。提供腾讯云平台整套运维服务,实时监控告警,帮助用户快速发现并解决问题,保证服务的可用性。

TDMQ RocketMQ 版主要能力

  • 普通消息

普通消息是一种基础的消息类型,由生产投递到指定 Topic 后,被订阅了该 Topic 的消费者所消费。普通消息的 Topic 中无顺序的概念,可以使用多个分区数来提升消息的生产和消费效率,在吞吐量巨大时其性能最好。

  • 顺序消息

局部顺序消息:局部顺序消息相较于普通消息类型,多了一个局部有顺序的特性。即同一个分区下,其消费者在消费消息的时候,严格按照生产者投递到该分区的顺序进行消费。局部顺序消息在保证了一定顺序性的同时,保留了分区机制提升性能。但局部顺序消息不能保证不同分区之间的顺序。

全局顺序消息:全局顺序消息最大的特性就在于,严格保证消息是按照生产者投递的顺序来消费的。所以其使用的是单分区来处理消息,用户不可自定义分区数,相比前两种消息类型,这种类型消息的性能较低。

  • 死信消息

死信消息是指无法被正常消费的消息。TDMQ 会在创建新的订阅(消费者确定了与某个 Topic 的订阅关系)时自动创建一个死信队列用于处理这种消息。

  • 重试队列

重试队列是一种为了确保消息被正常消费而设计的队列。当某些消息第一次被消费者消费后,没有得到正常的回应,则会进入重试队列,当重试达到一定次数后,停止重试,投递到死信队列中。

由于实际场景中,可能会存在的一些临时短暂的问题(如网络抖动,服务重启等)导致消息无法及时被处理,但短暂时间过后又恢复正常。这种场景下,重试队列的重试机制就可以很好解决此类问题。

  • 死信队列

死信队列是一种特殊的消息队列,用于集中处理无法被正常消费的消息的队列。当消息在重试队列中达到一定重试次数后仍未能被正常消费,TDMQ 会判定这条消息在当前情况下无法被消费,将其投递至死信队列。

实际场景中,消息可能会由于持续一段时间的服务宕机,网络断连而无法被消费。这种场景下,消息不会被立刻丢弃,死信队列会对这种消息进行较为长期的持久化,用户可以在找到对应解决方案后,创建消费者订阅死信队列来完成对当时无法处理消息的处理。

  • 延时消息

TDMQ RocketMQ版支持在一定范围内自定义时长的延时消息,只需在每条消息的消息属性中增加特定的延时参数即可实现,即使您使用的是开源版RocketMQ客户端,也可以轻松拓展使用该能力。

  • 集群消费

集群消费适用于每条消息只需要被处理一次的场景。

  • 广播消费

广播消费适用于每条消息需要被集群下每一个消费者处理的场景。

应用场景

  • 异步解耦

每笔交易订单数据需要被几十个下游业务系统关注,包括物品批价、发货、积分、流计算分析等,多个系统对消息的处理逻辑不一致,单个系统不可能去适配每一个关联业务。此时,TDMQ RocketMQ 版可实现高效的异步通信和应用解耦,确保主站业务的连续性。

  • 削峰填谷

企业不定时举办的一些营销活动,新品发布上线,节日抢红包等,往往都会带来临时性的流量洪峰,这对后端的各个应用系统考验是十分巨大的。TDMQ RocketMQ 版此时便可以承担一个缓冲器的角色,将上游突增的请求集中收集,下游可以根据自己的实际处理能力来消费请求消息。

  • 顺序收发

顺序消息的应用出现在业务场景中。例如 APP 或者游戏中商品购买与发放过程中的订单创建、支付、退款等流程都是严格按照顺序执行的,与先进先出(First In First Out,FIFO)原理类似,TDMQ RocketMQ 版提供一种专门应对这种情形的顺序消息功能,即保证消息 FIFO。

产品体验入口

腾讯云消息队列TDMQ RocketMQ 版已经开放公测,欢迎大家进入官网进行体验。

进行公测的用户可移步至“腾讯云中间件”微信公众号TDMQ RocketMQ公测推文扫码进入TDMQ RocketMQ的官方用户群,群内有腾讯云消息队列团队专业的技术人员,公测过程中遇到相关问题可直接在群里反应,会有专业人员为您解答。


腾讯云中间件
0 声望6 粉丝

关注云原生,分享腾讯云中间件技术