在應用場景方面 tMQ,遵循AMQP協議,由內在高並發的erlanng語言開發,用在即時的對可靠性要求比較高的訊息傳遞。 kafka是Linkedin於2010年12月份開源的消息發布訂閱系統,它主要用於處理活躍的串流數據,大數據量的數據處理上。
1)在架構模型方面RabbitMQ遵循AMQP協議,RabbitMQ的broker由Exchange,Binding,queue組成,其中exchange和binding組成了訊息的路由鍵;客戶端Producer透過連接channel和server進行通信,Consumer從queue取得訊息進行消費(長連接,queue有訊息會推送到consumer端,consumer循環從輸入流讀取資料)。 rabbitMQ以broker為中心;有訊息的確認機制。
kafka遵從一般的MQ結構,producer,broker,consumer,以consumer為中心,訊息的消費資訊保存的客戶端consumer上,consumer根據消費的點,從broker上批量pull資料;無消息確認機制。
2)在吞吐量kafka具有高的吞吐量,內部採用訊息的批次處理,zero-copy機制,資料的儲存和取得是本機磁碟順序批次操作,具有O(1)的複雜度,訊息處理的效率很高。 rabbitMQ在吞吐量方面稍遜於kafka,他們的出發點不一樣,rabbitMQ支援對訊息的可靠的傳遞,支援事務,不支援批量的操作;基於儲存的可靠性的要求儲存可以採用記憶體或者硬碟。
3)在可用性方面rabbitMQ支援miror的queue,主queue失效,miror queue接管。 kafka的broker支援主備模式。
4)在叢集負載平衡方面kafka採用zookeeper對叢集中的broker、consumer進行管理,可以註冊topic到zookeeper上;透過zookeeper的協調機制,producer保存對應topic的broker訊息,可以隨機或輪詢發送到broker上;
並且producer可以基於語意指定分片,訊息傳送到broker的某一分片上。
rabbitMQ的負載平衡需要單獨的loadbalancer來支援。
以上是rabbitmq和kafka的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。