客户案例

 

产品优势

功能 消息服务(CMQ) RabbitMQ Kafka RocketMQ
刷盘机制

同步刷盘,数据持久性99.999999%

同步刷盘

A异步刷盘,丢数据概率高

允许未刷盘就向客户端返回确认,机器异常宕机时会丢消息

消息堆积能力t

消息堆积量无上限,支持百亿级别

磁盘容量为堆积上限

磁盘容量为堆积上限

磁盘容量为堆积上限

强一致性算法对比

raft算法

GM算法(Guaranteed Multicast),定位问题复杂

弱一致性

无法保证强一致性

可用性对比

可用性高,broker 中存在 2 节点即可提供服务

GB算法要求在线的节点全部成功才返回成功,对于网络分区的处理不友好,可用性一般

不支持自动切换,master 故障后 salve 需要人工干预

横向扩展能力

平滑水平扩展,单集群提供 10万+ QPS,逻辑上单个 Queue 可跨多个集群提供服务

群扩容依赖前端 LVS 负载均衡等调度

扩展能力强

不支持水平扩展

消费模型

Push / Pull

Push / Pull

Pull

Pull

批量生产

支持

不支持

支持

支持

数据校验

checksum

CRC

CRC

消息回溯

支持

不支持

支持

不支持

路由匹配键消息过滤

支持

支持

不支持

不支持

延迟消息

支持

不支持

不支持

支持

消息重试

支持,失败重试的消息不因为cons

支持

不支持

不支持

死信队列

支持

支持

不支持

不支持

性能对比(2core4GB 内存服务器压测)

读写 10w QPS

读写 20w QPS

读写 10w QPS

读写 5w QPS

 

产品功能

入门说明
异步的通信协议

腾讯云消息服务提供异步的通信协议。消息的发送者将消息发送到消息队列后可以立即返回,不用等待接收者的响应,消息会被保存在队列中,直到被接收者取出。

保证消息的传递

如果发送消息时接收者不可用,消息队列会保留消息,直到成功地传递它。

解耦

腾讯云消息服务降低了两个进程间的耦合度。只要消息格式不变,即使接收者的接口、位置或者配置改变,也不会给发送者带来任何改变;而且,消息发送者无需知道消息接收者是谁,使得系统设计更清晰;相反的,例如,远程过程调用(RPC)或者服务间通过 socket 建立连接,如果对方接口改变了或者对方 IP/端口改变了,那么另一方需要改写代码或者改写配置。

提供路由

发送者无需与接收者建立连接,双方通过消息队列保证消息能够从发送者路由到接收者,甚至对于本来网络不易互通的两个服务,也可以提供消息路由。

队列模型(Queue)
主题模型(Topic)
 

应用场景

消息永不丢失(微信)

红包系统的分布式事务性的问题让大家很头痛,微信架构组在红包系统引入了 CMQ,避免分布式事务增加对系统的开销。CMQ 红包队列,保证了红包消息的可靠存储、传递,实时落盘写三份保证数据不丢。资金入账失败时可多次重试,避免入账失败后 rollback 回写和频繁轮询 DB。
了解更多 >>

跨机房异步通信
实现高扩展性
同城容灾
 

开发者资源

SDK资源

Java

V1.0.42017-04-07

下载

Python

V1.0.42017-04-07

下载

Php

V1.0.42017-04-07

下载

C++

V1.0.42017-04-07

下载