立即咨询

电话咨询

微信咨询

立即试用
商务合作

腾讯云消息队列Pulsar版

腾讯云消息队列Pulsar版,整合金融交易消息队列服务、存算分离消息队列及Serverless云原生消息队列服务功能。支持金融级可靠传输、弹性资源调度及云原生架构适配,助力企业应对高并发场景,提升消息处理效率与系统扩展性。
立即咨询

 

 

icon腾讯云消息队列 TDMQ 产品系列介绍icon

消息队列 TDMQ 是什么?

分布式架构中的重要组件,提供异步通信的基础能力,通过应用解耦降低系统复杂度,提升系统可用性和可扩展性

提供丰富的产品形态,兼容社区主流协议,覆盖在线和离线场景,服务端和客户端场景,满足互联网、金融、教育、出行、交通等不同行业和场景的需求

业界趋势:
从2007年 RabbitMQ 开源以来,社区形成了Kafka、RocketMQ、RabbitMQ、Pulsar 为首的4大主流协议,每个产品有各自的特性、生态和适用场景
TDMQ 产品矩阵:
聚焦社区主流协议,开源兼容
覆盖在线 + 离线场景,服务端 + 客户端场景,提供丰富的产品形态

 

 

iconApache Pulsaricon

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

 

 

iconTDMQ Pulsar 产品概述icon

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

 

 

iconTDMQ Pulsar 功能架构icon

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

主要特性
高一致、高可靠、高并发
服务和存储分离架构
支持百万级消息主题
非常低的消息发布和端到端的延迟
支持多种订阅模式
多副本跨 AZ 支持跨集群复制,实现地域级容
独有特性
完整的消息查询和消息轨迹
服务端允许主动推送长时间没有 ack 的消息
重点对象的内存占用、内部拉取数据的流量、速率等精细化监控
优化 bk 客户端,减少可用区容灾的故障恢复

 

 

iconTDMQ Pulsar 产品形态icon

选型流程

选择产品系列
根据业务场景、产品能力、使用成本判断产品选型
选择专业版集群固定存储或弹性存储
容量评估
评估业务计算规模,TPS / 带宽
评估存储使用量
购买集群
控制台购买集群

选型分析

 

 

icon企业基于社区版自建 Pulsar 面临的挑战icon

Pulsar 入门简单,进阶却有一定门槛

日益加重的研发和运维成本

01
集群维护的运维人员需要具备扎实的计算机功底(熟悉计算机网络、IO等)
02
对 Pulsar 的技术原理、各种配置参数项具有深刻理解
可以进行 Pulsar 集群参数调优,快速处理突发故障、动态进行集群扩缩容等
03
解决问题的研发人员,需要具备专业的经验和知识积累
内核层面的问题,具备排查定位修复能力
容灾层面,构建高可用解决方案
04
监控告警等运维基础设施,需要投入更多的人力、物力成本
需要时刻监控集群的健康状况,及时排除问题以保障业务的稳定运行

 

 

icon大客户自建普遍遇到的问题icon

集群发生异常时,因为监控体系不完善、数据面配置不合理。只能靠暂停业务、重启解决问题,对业务影响较大。请求腾讯侧帮助时,也只能手动捞日志的方式来排查

集群技术架构复杂度较高,Broker、BK 等性能参数配置不合理,高峰期出现非预期情况

自建集群的ZK运维难度大,ZK负载高,导致ZK频繁断连

 

 

 

iconPulsar 产品能力icon
多副本强一致
采用高效Quorum算法保证多副本强一致性
消息重试&死信
支持经典的消息重试和死信机制,重试达到一定次数后投递到死信队列
多订阅模式
兼容主流消息模型,支持队列模型、广播模型、订阅-发布模型
多种消息类型
支持全局/局部顺序消息、定时消息、延时消息
消息轨迹
清楚跟踪每条消息的生产IP、消费IP、生产消费时延等等
细粒度角色鉴权
支持自定义不同的角色授予不同命名空间的生产消费权限

 

 

icon多副本强一致性icon

采用Quorum机制,高效保证多副本之间的一致性

灵活的副本参数设置,满足不同的容灾需求

 

 

icon多订阅模式icon

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

 
 
如果想实现传统的 “发布-订阅消息”形式 ,可以让每个消费者都有一个唯一的订阅名称(独占/灾备)
 
如果您想实现传统的“消息队列” 形式,可以使多个消费者使用同一个的订阅名称(共享)
 
Key_Shared订阅模式,类似于共享订阅,但按key进行分发,比如同一特征(奇数、偶数等)。融合了Failover的有序性和Shared的消费扩展性。

 

 

icon多订阅模式icon

通过多订阅实现消息广播

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

 

 

icon消息重试和死信机制icon

重试和死信机制

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

 

 

 

icon消息重试和死信机制icon

消息主动重试

如果希望某条消息通过业务自己的逻辑进行主动重试,可以通过发送一条NACK到 Pulsar 服务端,服务端会立刻重新投递该消息

在同一个Topic中即可实现

主动重试不支持设置延迟时间,发送NACK到服务端时,服务端会立刻重新投递

 

 

icon顺序消息icon

独占模式(单个消费者)

在单个分区下,消息是顺序的,如果只有一个消费者,则其消息是严格按照先进先出的顺序进行消费的,遵循FIFO

广泛应用于对时间先后敏感的业务上,例如

量化交易

竞价拍卖

资源调度

操作日志

可以通过顺序消息来保障业务的准确性 

 

 

icon顺序消息icon

顺序消息常见问题

为什么
全局顺序消息吞吐性能一般?
1、全局顺序消息是单分区的
2、消息严格FIFO,即前面的消息必须得到应答才会开始后面的消息投递,一条阻塞则无法消费
为什么
顺序消息不支持异步发送?
异步发送虽然能提高客户端生产性能,但是没有办法确认一条消息已发送的话,就无法确定服务端接收到消息的顺序是否和生产顺序一致,也就无法保证消息的顺序性
为什么
推荐分区顺序消息,尽量不使用全局顺序?
分区顺序消息在顺序性和性能上兼顾,其实大多数情况前端业务可以做进一步拆分,把同一类需要须确保顺序的消息打上相同key,这样能hash到同一个分区。例如同一个群聊各用户发送的消息,就可以统一用群ID作为key,发送给分区顺序的Topic,保证同一个群里的消息落在同一个分区,保证顺序

 

 

icon定时&延时消息icon

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

延时消息举例
小程序下单某商品后,后台存放一条延时30分钟的消息,到时间之后消费端收到消息触发对支付结果的判断,如果没有支付就取消订单,这样就实现了超过30分钟未完成支付就取消订单的逻辑
定时消息举例
微信上用户将某条信息设置待办后,也可以通过发送一条定时消息,服务端到点收到这条定时消息,对用户进行待办项提醒

 

 

icon消息轨迹icon

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


 
查看某条消息的具体内容,具体参数
查看消息由哪个生产 IP 发送,是否发送成功,消息到服务端的具体时间
查看消息是否已持久化
查看消费由哪些消费者消费了,是否消费成功,消息确认消费的具体时间
需要做分布式系统的性能分析,查看 MQ 对相关消息处理的时延。

 

 

icon细粒度角色鉴权机制icon

 

 

icon跨地域复制icon

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

 
专业集群支持两种类型的复制:
元数据级,提供解决用户核心业务跨地域容灾的场景
消息级,解决用户全球地域的数据统一归档问题

 

 

icon跨地域复制——元数据级 应对跨地域容灾场景icon

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

正常场景
业务在 A 地域访问 Pulsar 服务端
用户需要完成两个前置动作:
1. 跨城网络连接建立
2. 元数据同步
异常发生时
控制台提供域名解析切换功能,将原 A 地域使用的域名指向到目标容灾 B 地域的集群
如此可避免客户端修改接入点地址,而实现对容灾 B 地域的集群方案,保障业务的延续性
异常恢复后
用户决策,客户端访问切回原地域集群:
用户判断是否需要进行消息回写
控制台发起域名切回,客户端正常访问原地域

 

icon跨地域复制——消息级  解决全球数据统一归档icon

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


 
Pulsar 开启跨地域复制后,集群中会启动一个 Replicator,以上海地域复制到北京地域为例
上海地域的 Pulsar 集群中运行 Replicator 组件,该组件中会启动 Producer-R,绑定了北京地域对端集群的 Topic1,将消息数据用生产者的方式发送到北京机房
复制流程
Producer1 生产消息到上海集群 Topic1
上海集群把消息持久化到 BookKeeper
BookKeeper 返回成功后把消息推给 Replicator 的 Cursor
Replicator 的 Cursor 通过 Producer-R 把消息发给北京集群 Topic1
北京集群 Topic1 写入 BookKeeper 成功后,给上海集群 Replicator 的 Cursor 回复 ACK,上海机房 Cursor 收到 ACK 后通过 Producer-R 推送下一条消息。

 

 

icon应用场景1:Pulsar在电商场景中的使用icon
异步解耦:Pulsar可以解除多个业务系统之间的耦合度,减少系统之间影响,提升核心业务响应速度和健壮性
 
削峰填谷:Pulsar可以应对突发性的流量洪峰,在峰值时堆积消息,而在峰值过去后下游系统慢慢消费消息,解决上下游处理能力不匹配,提升系统可用性
 
订阅通知:Pulsar提供的定时、延迟等能力,满足需要订阅通知的电商场景

 

 

 

icon应用场景2:Pulsar在金融场景中的使用icon
 
 
顺序消息:支持分区和全局顺序,分别满足不同的业务需求,如证券交易系统中相同股别采用全局顺序,交易系统的不同订单之间采用分区顺序
 
Tag 消息过滤:用于对某个Topic下的消息进行分类,限定消息只能在某一个客户端消费
 
生产消费1:N:一端生产,多端消费

 

 

icon应用场景3:Pulsar在大数据场景中的使用icon
 
 
1、如果有多个数据中心存在,需要在多个数据中心之间消费,那么 TDMQ Pulsar 版可以非常方便实现数据中心之间的同步
 
2、数据在“流动”中产生价值,传统数据分析大多是基于批量计算模型,而无法做到实时的数据分析,利用 TDMQ Pulsar 版与流式计算引擎相结合,可以很方便地实现业务数据的实时分析
 
3、丰富的周边生态,支持和多种计算框架以及存储对接,实现和现有数据平台的无缝对接
 
4、和应龙深度融合,已经有具体的客户验证使用中

 

 

iconTDMQ Pulsar 引擎架构icon

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

计算层
Pulsar计算层负责对消息体的解析封装和分发
分区是逻辑概念,Topic分区会被均衡到不同broker
一个Topic分区是由多个segment组成的集合,分区按时间或者大小被切成segment,分片被打散存放到集群中的所有节点
Broker不会持久化任何消息数据,无状态分布式,扩缩容和故障切换几乎无感知
存储层
Pulsar 存储层负责对消息体的多副本写入和存储
多副本会被均衡到不同bookie
Segment(分片)作为多副本写入的最小单位,条带化写入,新增存储节点可以很快分担存储压力
读写IO采用物理分离,在大量写入的情况下数据读取仍具有较高性能
多个bookkeeper节点是对等的
 

 

 

iconTDMQ Pulsar 最佳实践icon
消费
避免同时有大量没有ack的消息
 避免消费完成后没有及时ack,尤其是在key_shared模式下,会造成后续消息投递阻塞
尽量减少单条消息消费时间过长
延迟消息
限制延迟消息的最大延迟时间
使用过程中控制延迟消息规模
消息堆积
堆积消息超过阈值后有三种策略: producer_request_hold  发送消息超时 producer_exception 发送消息失败(默认行为) consumer_backlog_eviction将最早的消息丢弃掉

 

 

 

产品推荐

百卓轻云ERP工贸企业ERP管理系统
百卓轻云 ERP 工贸企业 ERP 管理系统,专注提供高效的生产管理系统与高性价比的进销存软件价格解决方案。依托一体化智能管理平台,实现生产计划、物料采购、库存管理到销售全链路数字化,提升效率 40% 以上
免费试用
查看详情
移动应用源代码加固
移动应用源代码加固 未经混淆的源代码受到攻击后,易暴露程序中关键算法、核心业务逻辑、数据结构和模块的控制流布局等敏感内容
免费试用
查看详情
深绘数字化商品全生命周期治理平台PIM
深绘数字化商品全生命周期治理平台PIM基于低代码开发平台,快速搭建商品营销信息管理平台。拥有行业内领先的自研低代码配置平台,支持用户自定义商品主数据系统的界面字段和交互组件,同时支持可视化配置字段映射到第三方渠道字段可从产品上货信息,扩展到产品知识库,产品档案等应用场景,灵活方便。 每个商品类目,可以定义多种场景下的商品数据表单,并支持嵌入BPM流程审批和自定义检索条件。
免费试用
查看详情
鼎捷软件厂内智能物流
依托物联网、人工智能、大数据、云计算等技术,有效联接各类智能设备、移动终端、企业管理系统等,帮助企业快速实现内部物流移动化、透明化、精益化、智能化的“四化”管理,从而提高效率,降低成本,增加效益,强化行业竞争力,加速智能化转型升级。
免费试用
查看详情