1. 程式人生 > >RabbitMQ和kafka的區別

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