RabbitMQ, Kafka, RocketMQ区别比较

RabbitMQ, Kafka, RocketMQ区别

功能项KafkaRabbitMQRocketMQ
优先级队列不支持支持,建议优先级大小设置在0-10之间支持,维护不同的优先级队列,根据message的优先级发送到对于的队列中
延迟队列不支持支持支持
死信队列不支持支持支持
重试队列不支持支持支持
消费模式pull拉模式pull + pushpull+长轮询
广播消费支持,kafka对于广播消息的支持更加正统支持支持
批量消息支持,生产者异步发送支持支持,生产者同步发送
消息回溯支持.Kakfa支持按照offset和timestam两种维度进行消息回溯不支持,一旦被确认消费就会被删除支持
消息堆积支持,海量消息堆积,堆积能力和磁盘大小挂钩支持,但是内存达到阀值时,性能会受影响支持海量消息堆积
持久化方式消息队列,segment方式支持消息队列
消息追踪不支持。消息追踪可以通过外部系统来支持,但是支持粒度没有内置的细腻。支持支持
消息过滤客户端级别的支持,可用过kafka stream进行消息过滤不支持,但是二次封装一下也较简单支持,可通过message tag、属性进行过滤
多租户不支持支持不支持
多协议支持只支持定义协议,目前几个主流版本之间存在兼容性问题AMQPJMS ,OpenMessaging
跨语言支持当前版本采用Java编写,支持多种语言的客户端采用Erlang编写,支持多种语言客户端Java, C++, Go
流量控制支持client和user级别,通过主动设置可将流控作用于生产者或消费者流量控制基于credit-base算法,是内部被动触发的保护机制,作用于生产者层面RocketMQ提供了针对于不同维度的流量控制
消息顺序性支持普通的顺序消息,即对于单个分区的消息发送和消费是有序的,但是不保证不重复顺序性的条件比较苛刻,需要单线程发送,单线程消费并且不采用延迟队列、优先级队列等一些高级功能,从某种意义上来书不支持顺序性支持普通的顺序消息和严格的顺序消息
幂等性支持单个Producer单个分区的会话幂等性不支持不支持,不解决消息的重复问题
事务性消息最新版支持事务消息支持最新版的metaq支持事务消息
性能最高
高可用和容错使用partition的副本机制和isr选举机制保证高可用普通集群非高可用,可用镜像模式和主备集群通过broker的master和slave实现高可用
幂等性支持单个Producer单个分区的会话幂等性不支持不支持,不解决消息的重复问题
定时消息不支持支持支持
负载均衡客户端消费者负载均衡,需要一个broker作为coordinator默认是轮询客户端负载均衡,支持平均和轮询分配
刷盘策略________默认是异步刷盘默认是内存存储默认同步刷盘

来源: https://blog.csdn.net/weixin_38002497/article/details/106055120

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值