RabbitMQ和kafka的区别

1.应用场景方面
RabbitMQ:用于实时的,对可靠性要求较高的消息传递上。
kafka:用于处于活跃的流式数据,大数据量的数据处理上。
2.架构模型方面
producer,broker,consumer
RabbitMQ:以broker为中心,有消息的确认机制
kafka:以consumer为中心,无消息的确认机制
3.吞吐量方面
RabbitMQ:支持消息的可靠的传递,支持事务,不支持批量操做,基于存储的可靠性的要求存储能够采用内存或硬盘,吞吐量小。
kafka:内部采用消息的批量处理,数据的存储和获取是本地磁盘顺序批量操做,消息处理的效率高,吞吐量高。
4.集群负载均衡方面
RabbitMQ:自己不支持负载均衡,须要loadbalancer的支持
kafka:采用zookeeper对集群中的broker,consumer进行管理,能够注册topic到zookeeper上,经过zookeeper的协调机制,producer保存对应的topic的broker信息,能够随机或者轮询发送到broker上,producer能够基于语义指定分片,消息发送到broker的某个分片上。
 架构

相关文章
相关标签/搜索