
腾讯云消息队列 TDMQ 产品系列介绍
消息队列 TDMQ 是什么?
分布式架构中的重要组件,提供异步通信的基础能力,通过应用解耦降低系统复杂度,提升系统可用性和可扩展性
提供丰富的产品形态,兼容社区主流协议,覆盖在线和离线场景,服务端和客户端场景,满足互联网、金融、教育、出行、交通等不同行业和场景的需求

Apache Pulsar
2018 年 9 月,Pulsar 成为 Apache 的顶级项目。此后,Pulsar 在全球范围内迅猛发展。越来越多的公司采用 Pulsar 构建创新的应用程序并借助实时流解决方案改进其现有系统

TDMQ Pulsar 产品概述
基于开源 Pulsar,完美支持按量使用无限扩展,专为云而生的消息队列

TDMQ Pulsar 功能架构
腾讯云消息队列 TDMQ 是基于 Apache 顶级项目 Pulsar 开发的一款金融级商业化消息中间件,具备存算分离、海量消息堆积等诸多原生优势特性同时,也增加了一些实际业务场景所需的功能,如支持 重试&死信消息、消息标签过滤、消息

TDMQ Pulsar 产品形态

选型流程
选型分析

企业基于社区版自建 Pulsar 面临的挑战
Pulsar 入门简单,进阶却有一定门槛
日益加重的研发和运维成本
大客户自建普遍遇到的问题
集群发生异常时,因为监控体系不完善、数据面配置不合理。只能靠暂停业务、重启解决问题,对业务影响较大。请求腾讯侧帮助时,也只能手动捞日志的方式来排查
集群技术架构复杂度较高,Broker、BK 等性能参数配置不合理,高峰期出现非预期情况
自建集群的ZK运维难度大,ZK负载高,导致ZK频繁断连

Pulsar 产品能力
多副本强一致性
采用Quorum机制,高效保证多副本之间的一致性
灵活的副本参数设置,满足不同的容灾需求

多订阅模式
为了适用不同场景的需求,腾讯云 Pulsar 提供多种订阅方式。订阅可以灵活组合出很多可能性:

多订阅模式
通过多订阅实现消息广播
一些开源的消息队列支持将消息同步发送给每一个指定的消费者,称之为广播消息。 Pulsar 中,可以通过创建多个订阅,每个订阅下的消费者使用独占模式(Exclusive)消费的方式来实现

消息重试和死信机制
重试和死信机制
在腾讯云 Pulsar 控制台或者通过API创建订阅时,会默认创建好该订阅的重试Topic和死信Topic

消息重试和死信机制
消息主动重试
如果希望某条消息通过业务自己的逻辑进行主动重试,可以通过发送一条NACK到 Pulsar 服务端,服务端会立刻重新投递该消息
在同一个Topic中即可实现
主动重试不支持设置延迟时间,发送NACK到服务端时,服务端会立刻重新投递

顺序消息
独占模式(单个消费者)
在单个分区下,消息是顺序的,如果只有一个消费者,则其消息是严格按照先进先出的顺序进行消费的,遵循FIFO
广泛应用于对时间先后敏感的业务上,例如
量化交易
竞价拍卖
资源调度
操作日志
可以通过顺序消息来保障业务的准确性

顺序消息
顺序消息常见问题
定时&延时消息
如果系统是一个单体架构,则通过业务代码自己实现延时或利用第三方组件实现基本没有差别;一旦架构复杂起来,形成了一个大型分布式系统,有几十上百个微服务,这时通过应用自己实现定时逻辑会带来各种问题。一旦运行着延时程序的某个节点出现问题,整个延时的逻辑都会受到影响。这时就可以依赖MQ作为统一的计时工具统筹分布式系统中的延时or定时触发的事件

消息轨迹
消息轨迹记录了消息从生产端到 Pulsar 服务端,最后到消费端的整个过程,包括各阶段的时间间隔(精确到微秒)、执行结果、生产者 IP、消费者 IP 等

细粒度角色鉴权机制

跨地域复制
TDMQ Pulsar 专业版基于 GEO Replication 方案,实现跨地域的集群复制,可以支持用户用于异地容灾、数据归档和异地消费等场景

跨地域复制——元数据级 应对跨地域容灾场景
消息中间件在业务系统的技术架构中,作为非常重要的组件。TDMQ Pulsar 本身支持了多可用区的容灾能力,为了解决当发生地域级灾难时,客户能够快速迁移业务,确保业务的连续性,故而推出跨地域容灾方案

跨地域复制——消息级 解决全球数据统一归档
消息中间件在 TDMQ Pulsar 专业版基于 GEO Replication 方案,实现跨地域的集群复制,可以支持用户用于异地容灾、数据归档和异地消费等场景

应用场景1:Pulsar在电商场景中的使用


应用场景2:Pulsar在金融场景中的使用

应用场景3:Pulsar在大数据场景中的使用

TDMQ Pulsar 引擎架构
受益于「存算分离」的架构,使得腾讯云 TDMQ 具备了运维灵活扩展、低成本存储使用,便于充分利用规模效应应对突发的高负载。而这是传统 MQ 所不具备的

TDMQ Pulsar 最佳实践


