RabbitMQ和kafka从几个角度简单的对比--转
業(yè)界對(duì)于消息的傳遞有多種方案和產(chǎn)品,本文就比較有代表性的兩個(gè)MQ(rabbitMQ,kafka)進(jìn)行闡述和做簡(jiǎn)單的對(duì)比,
在應(yīng)用場(chǎng)景方面,
RabbitMQ,遵循AMQP協(xié)議,由內(nèi)在高并發(fā)的erlanng語言開發(fā),用在實(shí)時(shí)的對(duì)可靠性要求比較高的消息傳遞上。
kafka是Linkedin于2010年12月份開源的消息發(fā)布訂閱系統(tǒng),它主要用于處理活躍的流式數(shù)據(jù),大數(shù)據(jù)量的數(shù)據(jù)處理上。
1)在架構(gòu)模型方面,
RabbitMQ遵循AMQP協(xié)議,RabbitMQ的broker由Exchange,Binding,queue組成,其中exchange和binding組成了消息的路由鍵;客戶端Producer通過連接channel和server進(jìn)行通信,Consumer從queue獲取消息進(jìn)行消費(fèi)(長(zhǎng)連接,queue有消息會(huì)推送到consumer端,consumer循環(huán)從輸入流讀取數(shù)據(jù))。rabbitMQ以broker為中心;有消息的確認(rèn)機(jī)制。
kafka遵從一般的MQ結(jié)構(gòu),producer,broker,consumer,以consumer為中心,消息的消費(fèi)信息保存的客戶端consumer上,consumer根據(jù)消費(fèi)的點(diǎn),從broker上批量pull數(shù)據(jù);無消息確認(rèn)機(jī)制。
2)在吞吐量,
kafka具有高的吞吐量,內(nèi)部采用消息的批量處理,zero-copy機(jī)制,數(shù)據(jù)的存儲(chǔ)和獲取是本地磁盤順序批量操作,具有O(1)的復(fù)雜度,消息處理的效率很高。
rabbitMQ在吞吐量方面稍遜于kafka,他們的出發(fā)點(diǎn)不一樣,rabbitMQ支持對(duì)消息的可靠的傳遞,支持事務(wù),不支持批量的操作;基于存儲(chǔ)的可靠性的要求存儲(chǔ)可以采用內(nèi)存或者硬盤。
3)在可用性方面,
rabbitMQ支持miror的queue,主queue失效,miror queue接管。
kafka的broker支持主備模式。
4)在集群負(fù)載均衡方面,
kafka采用zookeeper對(duì)集群中的broker、consumer進(jìn)行管理,可以注冊(cè)topic到zookeeper上;通過zookeeper的協(xié)調(diào)機(jī)制,producer保存對(duì)應(yīng)topic的broker信息,可以隨機(jī)或者輪詢發(fā)送到broker上;并且producer可以基于語義指定分片,消息發(fā)送到broker的某分片上。
rabbitMQ的負(fù)載均衡需要單獨(dú)的loadbalancer進(jìn)行支持。
原文:http://wbj0110.iteye.com/blog/1974988
收集的rabbitmq資料如下:
http://jzhihui.iteye.com/category/195005
http://lynnkong.iteye.com/blog/1699684
http://blog.csdn.net/anzhsoft/article/details/19607841
http://ybbct.iteye.com/blog/1562326
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/4076097.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的RabbitMQ和kafka从几个角度简单的对比--转的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rabbitmq Clustering
- 下一篇: IO流--转载