kafka和RabbitMQ的區別

2021-10-20 17:57:16 字數 669 閱讀 3818

1.應用場景方面

rabbitmq:用於實時的,對可靠性要求較高的訊息傳遞上。

kafka:用於處於活躍的流式資料,大資料量的資料處理上。

2.語言方面

rabbitmq是由內在高併發的erlanng語言開發,用在實時的對可靠性要求比較高的訊息傳遞上。

kafka是採用scala語言開發,它主要用於處理活躍的流式資料,大資料量的資料處理上

3.吞吐量方面

rabbitmq:支援訊息的可靠的傳遞,支援事務,不支援批量操作,基於儲存的可靠性的要求儲存可以採用記憶體或硬碟,吞吐量小。

kafka:內部採用訊息的批量處理,資料的儲存和獲取是本地磁碟順序批量操作,訊息處理的效率高,吞吐量高。

4.brokerr與consume互動方式不同

rabbitmq 採用push的方式

kafka採用pull的方式

5.集群負載均衡方面

rabbitmq:本身不支援負載均衡,需要loadbalancer的支援

kafka:採用zookeeper對集群中的broker,consumer進行管理,可以註冊topic到zookeeper上,通過zookeeper的協調機制,producer儲存對應的topic的broker資訊,可以隨機或者輪詢傳送到broker上,producer可以基於語義指定分片,訊息傳送到broker的某個分片上。

RabbitMQ和kafka的區別

rabbitmq遵循amqp協議,rabbitmq的broker由exchange,binding,queue組成,其中exchange和binding組成了訊息的路由鍵 客戶端producer通過連線channel和server進行通訊,consumer從queue獲取訊息進行消費 長連線,que...

RabbitMQ和kafka的區別

一 語言不同 rabbitmq是由內在高併發的erlanng語言開發,用在實時的對可靠性要求比較高的訊息傳遞上。kafka是採用scala語言開發,它主要用於處理活躍的流式資料,大資料量的資料處理上 二 結構不同 rabbitmq採用amqp advanced message queuing pro...

kafka和rabbitmq 的區別

一 語言不同 rabbitmq是由內在高併發的erlanng語言開發,用在實時的對可靠性要求比較高的訊息傳遞上。kafka是採用scala語言開發,它主要用於處理活躍的流式資料,大資料量的資料處理上 二 結構不同 rabbitmq採用amqp advanced message queuing pro...