RocketMQ、kafka、rabbitMQ不完全对比

RocketMQ、Kafka、RabbitMQ不完全对比

产品组件(组成)

产品组件组件组件组件组件组件组件
Rocket MQp(producer)c(consumer)brocker(支持pull和push,支持顺序行消费)NameServer(服务发现和服务路由,记录路由信息)CommitLog(消息持久化存储)Consumer Queue(存储的是在CommitLog中的偏移量延迟队列)
Kafakp(producer)c(consumer)brocker(存储message)zk(管理p/c/broker的注册)topic(逻辑概念)
Rabbit MQp(producer)c(consumer)exchanger(P与ex直连,通过p的ROUTING_KEY进行消息路由,将消息发送给queue,可以持久化)Queue(与消费者直连,可持久化)Binding(exchange与queue的绑定规则)Routing Key(exchange据此路由消息)vhost

产品特性

产品队列优先级队列重试消费方式广播模式持久化跨语言顺序事务性能定时
Rocket MQ支持支持pull+push支持支持Java, C++, Go,对java最友好支持支持支持
Kafka不支持不支持pull支持支持java编写,支持多语言单个分区消息有序支持最高不支持
Rabbit MQ支持支持pull+push支持支持Erlang编写,支持多语言可以认为不支持支持支持

关于性能

咨询了下朋友kafaka性能搞的原因主要是Kafka的在producer端将多个小消息合并,发送到broker中,还有个重要的原因是做到零拷贝,无需CPU拷贝。还有一些其他原因如kafaka利用partition实现并行处理,最大并发度等于partition的数量。
RocketMQ没有做消息合并主要考虑到java gc的问题,还有就是消息合并发送万一出现down机,丢失消息也比不合并出现的问题大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值