全部产品

消息队列 CMQ

安全可靠、扩展性高且业务可用性强的高性能分布式消息队列服务

消息队列 CMQ 简介

腾讯云消息队列(Cloud Message Queue,CMQ)是一种分布式消息队列服务,它能够提供可靠的基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)之间的收发消息,存储在可靠有效的 CMQ 队列中,防止消息丢失。CMQ 支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。

腾讯云 CMQ 的特性

高性能

消息队列 CMQ 高效支持亿级消息收发和推送,海量消息堆积且消息堆积容量不设上限;CMQ 吞吐量巨大,单集群 QPS 超过 10 万,满足您的业务之间的消息收发需求。

高可用

CMQ 在每条消息返回到用户时,将消息数据备份 3 份写到不同物理机上,当某台物理机出故障时,后台数据复制机制能够对数据快速迁移,保证用户数据3 个备份可用,可靠保证达 99.999999%,业务连续可用性99.95%承诺,引入 Raft 算法实现数据强一致性。

横向扩展

底层系统根据业务规模,自动弹性扩展消息队列的队列数量和队列存储容量,对上层业务无感知,提供北京、上海、广州等多地域服务。平滑水平扩展,单集群提供超 10 万 QPS,逻辑上单个队列服务可跨多个集群提供服务。

安全可靠

CMQ 支持 HTTPS 安全访问连接,并基于腾讯云平台多维度的安全防护,抵御网络攻击,保护您的业务隐私。同时支持主子账号,协作者账号等账号管理,支持基于细粒度资源访问控制权限,细化管理。

易用免运维

提供 API 访问接口和 java,C++ 等多种 SDK,简化开发成本,方便上云。支持多维度的监控告警功能,无须关心底层资源的运维,专注您的业务开发。 

应用场景

消息永不丢失(微信)

CMQ 在微信红包系统的分布式事务问题上得到了体现,微信架构组在红包系统引入了 CMQ,避免分布式事务增加对系统的开销。CMQ 红包队列,保证了红包消息的可靠传递和存储。当资金入账失败时,账户系统将不断从 CMQ 重新拉取重试此更新操作,保证入账消息永远不丢,避免入账失败回滚和频繁轮询数据库等弊端发生,了解更多

实现高扩展性

CMQ 后端集群对用户来说是透明无感知的,CMQ 控制服务器可根据集群的负载情况实时对队列进行调度搬迁。如果某个队列服务的请求量超过当前集群的服务阈值,controller server 可以将队列路由分布到多个集群上来提高并发量,理论上可以达到无限的消息堆积以及超高的 QPS,轻松应对业务需求。
使用 CMQ 满足了 2 个核心需求:

  • 客户的促销系统,消费者入账的时候是异步的。入账信息先写到 MQ 里,消费者过来拉取,且消费者确认已成功消费后,回调接口将 MQ 里的信息删除。
  • 各大系统包括运维、告警、运营系统的日志流水,先聚合到 CMQ 中,后端的大数据分析集群按处理能力,不断到CMQ中拉取并分析。CMQ 理论上支持的消息堆积数量无上限,使用无后顾之忧。

同城容灾

CMQ 支持在金融机房下(2个可用区)分别部署两套 CMQ 集群(如深圳坪山、观澜),业务方可以根据实际需求将消息写入任意园区。
消息 body 的存储,可根据业务特性选择,同步落盘(强一致性)、异步落盘(最终一致性)的不同策略。
当主节点 MQ 数据彻底丢失时,主备节点的 RPO 在 5min 以内。腾讯云提供 failover、failback 切换的 API 接口,将灾难恢复、切换的控制权交给客户。准备切换后,存在数据的差异,可关联其他 DB 做对账等处理,补回数据。
金融级的容灾方案为 Webank、财付通等核心业务保驾护航。