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的某個分片上。
 架構

相關文章
相關標籤/搜索