日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

消息队列—主要消息中间件优势对比

發布時間:2024/4/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 消息队列—主要消息中间件优势对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
各種消息中間件對比?KafkaRabbitMQRocketMQ

資料文檔

有kafka作者自己寫的書,網上資料也有一些

有一些不錯的書,網上資料多

沒有專門寫rocketmq的書,網上的資料良莠不齊,官方文檔很簡潔,但是對技術細節沒有過多的描述

開發語言ScalaErlangjava
支持的協議自己的一套,基于TCPAMQP自己定義的一套
消息存儲

內存、磁盤、數據庫。支持大量堆積。

內存、磁盤。支持少量堆積。磁盤。支持大量堆積。
消息事務支持支持支持
負載均衡支持對負載均衡的支持不好。支持
集群方式天然的‘Leader-Slave’無狀態集群,每臺服務器既是Master也是Slave支持簡單集群,'復制'模式,對高級集群模式支持不好。常用 多對'Master-Slave' 模式,開源版本需手動切換Slave變成Master
管理界面???
可用性???
消息重復???

吞吐量TPS

按批次發送消息和消費消息比較大?

訂閱形式和消息分發

基于topic以及按照topic進行正則匹配的發布訂閱模式供了4種:direct, topic ,Headers和fanout。基于topic/messageTag以及按照消息類型、屬性進行正則匹配的發布訂閱模式。

順序消息

支持不支持支持
消息確認支持支持支持

消息回溯

???
消息重試???
并發度

一個線程一個消費者,kafka限制消費者的個數要小于等于分區數,如果要提高并行度,可以在消費者中再開啟多線程,或者增加consumer實例數量。

極高

1.本身是用Erlang語言寫的,并發性能高。

2.可在消費者中開啟多線程,最常用的做法是一個channel對應一個消費者,每一個線程把持一個channel,多個線程復用connection的tcp連接,減少性能開銷。

3.當rabbitmq隊列擁有多個消費者的時候,隊列收到的消息將以輪詢的分發方式發送給消費者。每條消息只會發送給訂閱列表里的一個消費者,不會重復。這種方式非常適合擴展,而且是專門為并發程序設計的。

4.如果某些消費者的任務比較繁重,那么可以設置basicQos限制信道上消費者能保持的最大未確認消息的數量,在達到上限時,rabbitmq不再向這個消費者發送任何消息。

1、rocketmq限制消費者的個數少于等于隊列數,但是可以在消費者中再開啟多線程,這一點和kafka是一致的,提高并行度的方法相同。

修改消費并行度方法

a) 同一個 ConsumerGroup 下,通過增加 Consumer 實例數量來提高并行度,超過訂閱隊列數的 Consumer實例無效。

b) 提高單個 Consumer 的消費并行線程,通過修改參數consumeThreadMin、consumeThreadMax

2、同一個網絡連接connection,客戶端多個線程可以同時發送請求,連接會被復用,減少性能開銷。

參考文章:[消息中間件]幾種常用的消息中間件對比

總結

以上是生活随笔為你收集整理的消息队列—主要消息中间件优势对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。