久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何進行Kafka、RabbitMQ、RocketMQ消息中間件消息發(fā)送性能的對比

146次閱讀
沒有評論

共計 1772 個字符,預計需要花費 5 分鐘才能閱讀完成。

行業(yè)資訊    
服務器    
云計算    
如何進行 Kafka、RabbitMQ、RocketMQ 消息中間件消息發(fā)送性能的對比

這篇文章給大家介紹如何進行 Kafka、RabbitMQ、RocketMQ 消息中間件消息發(fā)送性能的對比,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

摘要
引言 分布式系統(tǒng)中, 我們廣泛運用消息中間件進行系統(tǒng)間的數據交換, 便于異步解耦。現(xiàn)在開源的消息中間件有很多, 前段時間我們自家的產品 RocketMQ (MetaQ 的內核) 也順利開源, 得到大家的關注。那么, 消息中間件性能究竟哪家強? 帶著這個疑問, 我們中間件測試組對常見的三類消息產品(Kafka、…

引言

分布式系統(tǒng)中, 我們廣泛運用消息中間件進行系統(tǒng)間的數據交換, 便于異步解耦。現(xiàn)在開源的消息中間件有很多, 前段時間我們自家的產品 RocketMQ (MetaQ 的內核) 也順利開源, 得到大家的關注。

那么, 消息中間件性能究竟哪家強?

帶著這個疑問, 我們中間件測試組對常見的三類消息產品 (Kafka、RabbitMQ、RocketMQ) 做了性能比較。

Kafka 是 LinkedIn 開源的分布式發(fā)布 - 訂閱消息系統(tǒng),目前歸屬于 Apache 定級項目。Kafka 主要特點是基于 Pull 的模式來處理消息消費,追求高吞吐量,一開始的目的就是用于日志收集和傳輸。0.8 版本開始支持復制,不支持事務,對消息的重復、丟失、錯誤沒有嚴格要求,適合產生大量數據的互聯(lián)網服務的數據收集業(yè)務。

RabbitMQ 是使用 Erlang 語言開發(fā)的開源消息隊列系統(tǒng),基于 AMQP 協(xié)議來實現(xiàn)。AMQP 的主要特征是面向消息、隊列、路由(包括點對點和發(fā)布 / 訂閱)、可靠性、安全。AMQP 協(xié)議更多用在企業(yè)系統(tǒng)內,對數據一致性、穩(wěn)定性和可靠性要求很高的場景,對性能和吞吐量的要求還在其次。

RocketMQ 是阿里開源的消息中間件,它是純 Java 開發(fā),具有高吞吐量、高可用性、適合大規(guī)模分布式系統(tǒng)應用的特點。RocketMQ 思路起源于 Kafka,但并不是 Kafka 的一個 Copy,它對消息的可靠傳輸及事務性做了優(yōu)化,目前在阿里集團被廣泛應用于交易、充值、流計算、消息推送、日志流式處理、binglog 分發(fā)等場景。

測試目的

對比 Kafka、RabbitMQ、RocketMQ 發(fā)送小消息 (124 字節(jié)) 的性能。這次壓測我們只關注服務端的性能指標, 所以壓測的標準是:

不斷增加發(fā)送端的壓力, 直到系統(tǒng)吞吐量不再上升, 而響應時間拉長。這時服務端已出現(xiàn)性能瓶頸, 可以獲得相應的系統(tǒng)最佳吞吐量。

測試場景

在同步發(fā)送場景中,三個消息中間件的表現(xiàn)區(qū)分明顯:

Kafka 的吞吐量高達 17.3w/s,不愧是高吞吐量消息中間件的行業(yè)老大。這主要取決于它的隊列模式保證了寫磁盤的過程是線性 IO。此時 broker 磁盤 IO 已達瓶頸。

RocketMQ 也表現(xiàn)不俗,吞吐量在 11.6w/s,磁盤 IO %util 已接近 100%。RocketMQ 的消息寫入內存后即返回 ack,由單獨的線程專門做刷盤的操作,所有的消息均是順序寫文件。

RabbitMQ 的吞吐量 5.95w/s,CPU 資源消耗較高。它支持 AMQP 協(xié)議,實現(xiàn)非常重量級,為了保證消息的可靠性在吞吐量上做了取舍。我們還做了 RabbitMQ 在消息持久化場景下的性能測試,吞吐量在 2.6w/ s 左右。

測試結論

在服務端處理同步發(fā)送的性能上,Kafka RocketMQ RabbitMQ。

附錄:測試環(huán)境

服務端為單機部署,機器配置如下:

CPU24 核內存 94G 硬盤 Seagate Constellation ES (SATA 6Gb/s) 2,000,398,934,016 bytes [2.00 TB] 7202 rpm 網卡 1000Mb/s

應用版本:

消息中間件版本 Kafka0.8.2RabbitMQ3.5.4RocketMQ3.4.6 測試腳本壓力端 Jmeter 的 java 客戶端消息大小 128 字節(jié)并發(fā)數能達到服務端最大 TPS 的最優(yōu)并發(fā) Topic 分區(qū)數量 8 刷盤策略 Kafka 和 RocketMQ 為異步落盤,RabbitMQ 的 Queue 不開啟 durable 持久化

關于如何進行 Kafka、RabbitMQ、RocketMQ 消息中間件消息發(fā)送性能的對比就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-08-16發(fā)表,共計1772字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發(fā)布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 五大连池市| 蓝田县| 永修县| 宝鸡市| 甘南县| 建湖县| 沅江市| 视频| 恩平市| 武陟县| 九龙城区| 延长县| 镇平县| 澄江县| 台南县| 广灵县| 明光市| 长泰县| 南京市| 宁晋县| 锡林郭勒盟| 阳春市| 界首市| 鞍山市| 兴业县| 新疆| 建水县| 建阳市| 项城市| 仪征市| 尼玛县| 保山市| 辽阳县| 沁阳市| 睢宁县| 买车| 浠水县| 平江县| 雷州市| 额济纳旗| 平度市|