跳到主要内容

RocketMQ

RocketMQ 和 Kafka 有什么区别?

  1. 适用场景:Kafka适合日志处理;RocketMQ适合业务处理。
  2. 性能:Kafka单机写入TPS号称在百万条/秒;RocketMQ大约在10万条/秒。Kafka单机性能更高。
  3. 可靠性:RocketMQ支持异步/同步刷盘;异步/同步Replication;Kafka使用异步刷盘方式,异步Replication。RocketMQ所支持的同步方式提升了数据的可靠性。
  4. 实时性:均支持pull长轮询,RocketMQ消息实时性更好
  5. 支持的队列数:Kafka单机超过64个队列/分区,消息发送性能降低严重;RocketMQ单机支持最高5万个队列,性能稳定(这也是适合业务处理的原因之一)

为什么阿里会自研RocketMQ?

  1. Kafka的业务应用场景主要定位于日志传输;对于复杂业务支持不够
  2. 阿里很多业务场景对数据可靠性、数据实时性、消息队列的个数等方面的要求很高
  3. 当业务成长到一定规模,采用开源方案的技术成本会变高(开源方案无法满足业务的需要;旧版本、自开发代码与新版本的兼容等)
  4. 阿里在团队、成本、资源投入等方面约束性条件几乎没有