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...