Kafka与RabbitMQ对比
程序员文章站
2022-04-29 19:06:54
Infi-chu: http://www.cnblogs.com/Infi-chu/ Kafka是LinkedIn在2012年发布的开源的消息发布订阅系统,他主要用于处理活跃的流式数据、大数据量的数据处理上 RabbitMQ由Erlang语言开发,主要用在实时的对可靠性要求较高的消息传递上 1.架构 ......
infi-chu:
http://www.cnblogs.com/infi-chu/
kafka是linkedin在2012年发布的开源的消息发布订阅系统,他主要用于处理活跃的流式数据、大数据量的数据处理上
rabbitmq由erlang语言开发,主要用在实时的对可靠性要求较高的消息传递上
1.架构模型
- rabbitmq遵循amqp协议,rabbitmq的borker由exchange、binding和queue组成,其中exchange和binding组成了消息的路由键,客户端producer通过连接channel和server进行通信,consumer从queue获取消息进行消费,有消息确认机制
- kafka遵循从一般的mq结构,producer、broker、consumer为中心,消息的消费信息保存在客户端consumer上,consumer根据消费的点,从broker上批量pull数据,无消息确认机制
2.吞吐量
- rabbitmq吞吐量较低,rabbitmq支持对消息的可靠传递,支持事物,不支持批量的操作,基于存储的可靠性要求存储可以采用内存或硬盘
- kafka吞吐量较高,内部采用消息的批量处理,zero-copy机制,数据的存储和获取时候本地磁盘顺序批量操作,复杂度为o(1),消息处理效率较高
3.可用性
- rabbitmq支持miror和queue,当主queue失效时,miror queue接管
- kafka的broker支持主备模式
4.负载均衡
- rabbitmq的负载均衡需要单独的loadbalance进行支持
- kafka采用zookeeper对集群中的broker、consumer进行管理,可以注册topic到zookeeper上;通过zookeeper的协调机制,producer保存对应的topic的broker信息,可以随机或轮询发送到broker上,并且producer可以基于语义指定分片,消息发送到broker的某个分片上
推荐阅读
-
优酷大酷卡与小酷卡哪个划算?优酷大酷卡与小酷卡套餐资费区别对比
-
优酷大酷卡与腾讯大王卡哪个好?大酷卡和腾讯大王卡套餐资费对比区别介绍
-
spring boot 与kafka集成的示例代码
-
Win10 Mobile 10512与WP8.1性能体验对比视频
-
骁龙835和骁龙821哪个好?骁龙835与骁龙821区别对比介绍
-
百度关键词优化与谷歌优化的操作对比分析
-
浅析C#中StringBuilder类的高效及与String的对比
-
CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用
-
(1)对比:阻塞与非阻塞、同步与异步
-
极光大数据:高额补贴告一段落后,美团打车与滴滴出行的对比如何?