RocketMQ与Kafka的区别

RocketMQ和Kafka区别

1)适用场景

  Kafka适合日志处理

  RocketMQ适合业务处理

  结论:平手,根据具体业务定夺

2)性能

  kafka单机写入TPS号称在百万条/秒;

  RocketMQ大约在10万条/秒;

  结论:追求性能的话,kafka单机性能更高

3)可靠性

  RocketMQ支持异步/同步刷盘;异步/同步 Replication;

  Kafka使用异步刷盘方式,异步Replication;

  结论:RocketMQ所支持的同步方式提升了数据的可靠性。

4)实时性

  均支持pull长轮询,RocketMQ消息实时性更好

  结论:RocketMQ胜出。

5)支持的队列数

  Kafka单机超过64个队列/分区,消息发送性能降低严重;

  RocketMQ单机支持最高5万个队列,性能稳定;

  结论:长远来看,RocketMQ胜出,这也是适合业务处理的原因之一

6)消息顺序性

  Kafka某些配置下,支持消息顺序,但是一台Broker宕机后,就会产生消息乱序;

  RocketMQ支持严格的消息顺序,在顺序消费场景下,一台Broker宕机后,发送消息会失败,但是不会乱序。

  结论:RocketMQ胜出

7)消费失败重试机制

  Kafka消费失败不支持重试

  RocketMQ消费失败支持定时重试,每次重试间隔时间顺延

8)定时/延时消息

  Kafka不支持定时消息;

  RocketMQ支持定时消息

9)分布式事务消息

  Kafka不支持分布式事务消息

  RocketMQ支持分布式事务消息

10)消息查询机制

  Kafka不支持消息查询

  RocketMQ支持根据Message Id查询消息,也支持根据消息内容查询消息

11)消息回溯

  Kafka理论上可以按照Offset来回溯消息

  RocketMQ支持按照时间来回溯消息,精度毫秒,例如从一天之前的某分某秒开始重新消费消息

 

RocketMQ诞生的场景

1)Kafka的业务应用场景主要定位于日志传输;对于复杂业务支持不够。

2)RocketMQ具有数据可靠性、数据实时性、消息队列的个数更多等特点;更符合业务严谨的项目。

3)Kafka针对的是海量数据的场景,但是对数据的正确性要求不是特别严格。但是像关于交易等对数据的正确性要求特别高的,Kafka不是特别适合

 

上一篇:17. Merge Two Binary Trees 融合二叉树


下一篇:LeetCode:704_二分查找(Binary Search)