rocketMq简介以及和kafka对比

2020-12-07  本文已影响0人  matthewfly

rocketMq是由阿里开源的,后面交由Apache维护,先看下rocketMq的物理架构。


rmq-basic-arc.png

rocketMq参照了kafka的设计,所以架构上和kafka还是挺相似。但是既然重新开发了rocketMq,一定有其不同和优势。
rocketMq由producer、broker、name server、consumer构成。

对比:
  1. 相比于kafka集群元数据保存在zookeeper,由zk来维护数据的一致性,当然broker controller 也担负了重要职责;rocketMq则是将元数据保存在name server,并且由各broker节点负责更新。
  2. kafka在leader挂掉后,可以从flower中选举;rocketMq中broker身份则是固定,master挂掉后,数据会推送给其他master。
  3. kafka各个partition单独存储,并发写入更快,但partition过多时,访问磁盘需要寻道,使得io速度降低。
  4. kafka按照partition分开存储消息,消息在单个partition内部顺序存储;rocketMq将topic所有队列消息混合存储在单个文件,在该文件基础上构建索引,所以查询时要多一个步骤。
  5. rocketMq支持单个消息查询,可根据id,也可根据消息内容查询。
  6. rocketMq的消息顺序性和kafka几乎一致,是建立在单队列的基础上的,对应kafka的单分区消息顺序性。
RocketMq主要优点:

参考:
http://rocketmq.apache.org/docs/motivation/
https://www.jianshu.com/p/c474ca9f9430
https://blog.csdn.net/damacheng/article/details/42846549

上一篇 下一篇

猜你喜欢

热点阅读