一、語言不同
rabbitmq是由內在高併發的erlanng語言開發,用在實時的對可靠性要求比較高的訊息傳遞上。
kafka是採用scala語言開發,它主要用於處理活躍的流式資料,大資料量的資料處理上
二、結構不同
rabbitmq採用amqp(advanced message queuing protocol,高階訊息佇列協議)是乙個程序間傳遞非同步訊息的網路協議
rabbitmq的broker由exchange,binding,queue組成
kafka採用mq結構:broker 有part 分割槽的概念
三、brokerr與consume互動方式不同
rabbitmq 採用push的方式
kafka採用pull的方式
四、在集群負載均衡方面,
rabbitmq的負載均衡需要單獨的loadbalancer進行支援。
kafka採用zookeeper對集群中的broker、consumer進行管理
五、使用場景
rabbitmq支援對訊息的可靠的傳遞,支援事務,不支援批量的操作;基於儲存的可靠性的要求儲存可以採用記憶體或者硬碟。
金融場景中經常使用
kafka具有高的吞吐量,內部採用訊息的批量處理,zero-copy機制,資料的儲存和獲取是本地磁碟順序批量操作,具有o(1)的複雜度(與分割槽上的儲存大小無關),訊息處理的效率很高。(大資料)
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的區別
1.應用場景方面 rabbitmq 用於實時的,對可靠性要求較高的訊息傳遞上。kafka 用於處於活躍的流式資料,大資料量的資料處理上。2.語言方面 rabbitmq是由內在高併發的erlanng語言開發,用在實時的對可靠性要求比較高的訊息傳遞上。kafka是採用scala語言開發,它主要用於處理活...