常见 MQ 的比较 - Kafka、RocketMQ、RabbitMQ的优劣势比较

作者: 疯狂小兵 | 2019-08-26 | 阅读
「编辑」 「本文源码」

MQ 的作用

  1. 解耦
  2. 最终一致性
  3. 广播 生产者和消费者互相不用关心。
  4. 错峰和流控 秒杀场景

kafka、RocketMq、RabbitMq 比较

特性 kafka RocketMq RabbitMq ActiveMq
开发语言 scala java erlang java
单机吞吐量 10w 级 10w 级 1w 级 1w 级
时效性 ms 级内 ms 级内 us 级 ms级
可用性 非常高(分布式架构) 非常高(分布式架构) 高(主从架构) 高(主从架构)
功能特性 只支持主要 Mq 功能。大数据领域应用广 MQ 功能比较完备,扩展性佳 并发能力很强,性能极好,延时很低,管理界面丰富 成熟的产品,很多公司在用。各协议支持好。mq 功能极其完备
优势 1. 单机 TPS 百万级
2.优秀的管理界面 kafka-mamager
3. 应用于实时计算和日志采集
1. 支持 10 亿级消息堆积,不影响性能。
2. 源码为 java,可定制,易读懂
3. 参数优化后,消息零丢失。
4. 支持分布式事务
1. 基于 erlang,性能好,高并发
2. 社区活跃
3. 文档齐全
1. mq领域功能极其完备
缺陷 1. kafka 单机超过 64 分区,load 会飙高。
2.使用短轮询方式,实时性取决于轮询间隔时间。
3.消费失败不支持重试.
1. 客户端支持语言不多
2. 社区活跃度一般。
3.没有实现 JMS 接口,有些系统迁移改动大
1.erlang 开发。代码较难看懂
2. 吞吐量相对较低,因为实现机制比较重。
3.学习维护成本高
关房对 ActiveMq5.x 维护渐少,较少在大吞吐量规模使用
应用场景 基于 PULL 模式处理消息消费,追求高吞吐量。大公司建议使用 为金融互联网领域而生,对可靠性要求很高的场景。经过双 11 的洗礼,稳定性更可靠。 并发性好,功能完备,社区活跃度高,快速解决 bug。不利于二次开发。适合于数据量不那么大的公司  

版权声明:本文由 在 2019年08月26日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《常见 MQ 的比较 - Kafka、RocketMQ、RabbitMQ的优劣势比较》




  相关文章:

「游客及非Github用户留言」:

「Github登录用户留言」:

TOP