相比传统开源 MQ 应用,消息队列 CMQ 版具有以下优势:
| 对比项 | 消息队列 CMQ 版 | 传统开源 MQ 应用 |
|---|---|---|
| 高性能 | 兼顾性能与可靠性,单 TDMQ CMQ 版实例 QPS 达到5000 | 数据可靠性与性能无法兼顾 |
| 高扩展性 | - 队列数量及队列存储容量可扩展性强 - 底层系统根据业务规模,自动弹性伸缩,上层业务无感知 - 高效支持亿级消息收发、推送、堆积,容量不设上限 |
队列数量和消息堆积数量有限 每个 IDC 机房必须重新部署、购买设备,非常繁琐 |
| 高可靠性 | - 消息服务每条消息在返回给用户写成功之时就确保数据已被复制3份写到不同物理机上,并且后台数据复制机制能够保证任何一台物理机故障时其上的数据能够快速的做迁移,时刻保证用户数据3份 copy 可用,可靠性达99.999999% - 引入改良后的 Raft 一致性算法,保证数据强一致性 - 业务可用性承诺:99.95% |
- 数据单机或简单主从结构,存在数据单点问题,一旦丢失不可回溯 - 开源的 replica 算法,在集群新增、删除服务器节点时,会引发全局的数据重新均衡,引起可用性急剧下降 - 如 Kafka 使用异步刷盘方式,异步 Replication,无法保证数据强一致性 |
| 业务安全 | - 多维度的安全防护和通过接入层的缓存和负载均衡来应对DDoS 攻击 - 每个消息服务提供单独命名空间,客户间数据严格隔离 - 支持 HTTP 访问 - 支持跨地域的安全消息服务 |
- 安全防护功能有限 - 考虑到公网的网络威胁,经常无法提供跨地域、跨 IDC 的公网服务 |