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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

主流消息队列MQ对比

發(fā)布時間:2023/12/29 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 主流消息队列MQ对比 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文將從多個維度綜合對比Kafka、RabbitMQ、RocketMQ、ActiveMQ這4款當前最主流的MQ消息中間件產(chǎn)品,希望能為您的下一次產(chǎn)品的架構(gòu)設(shè)計和MQ消息中間件選型提供參考依據(jù)。

特點RabbitMQActiveMQKafkaRocketMQ
資料文檔資料數(shù)量多資料數(shù)量多資料數(shù)量中等資料數(shù)量少,建議去官網(wǎng)上看
開發(fā)語言ErlangJavaScalaJava
支持的協(xié)議AMQPOpenWire、STOMP、REST、XMPP、AMQP自己定義的一套…(基于TCP)自己定義的一套…
消息存儲內(nèi)存、磁盤。支持少量堆積內(nèi)存、磁盤、數(shù)據(jù)庫。支持少量堆積。內(nèi)存、磁盤、數(shù)據(jù)庫。支持大量堆積磁盤。支持大量堆積。

消息事務

支持。客戶端將信道設(shè)置為事務模式,只有當消息被RabbitMQ接收,事務才能提交成功,否則在捕獲異常后進行回滾。使用事務會使得性能有所下降支持支持支持
負載均衡負載均衡的支持不好支持負載均衡。基于zookeeper實現(xiàn)負載均衡。支持支持
集群方式支持簡單集群,'復制'模式,對高級集群模式支持不好。支持簡單集群模式,比如'主-備',對高級集群模式支持不好。天然的‘Leader-Slave’無狀態(tài)集群,每臺服務器既是Master也是Slave。常用 多對'Master-Slave' 模式,開源版本需手動切換Slave變成Master。
管理界面一般一般有管理后臺, 但不是項目里自帶, 需要自己啟動一個單獨的管理后臺實例
可用性高(主從)高(主從)非常高(分布式)非常高(分布式)
消息重復支持at least once、at most once支持at least once支持at least once、at most once支持at least once
吞吐量(TPS)比較大比較大極大。Kafka按批次發(fā)送消息和消費消息。發(fā)送端將多個小消息合并,批量發(fā)向Broker,消費端每次取出一個批次的消息批量處理。大。RocketMQ接收端可以批量消費消息,可以配置每次消費的消息數(shù),但是發(fā)送端不是批量發(fā)送。
順序消息不支持不支持支持
?
支持
消息回溯不支持不支持支持指定分區(qū)offset位置的回溯支持指定分區(qū)offset位置的回溯
消息重試不支持,但是可以利用消息確認機制實現(xiàn)。不支持不支持,但是可以利用消息確認機制實現(xiàn)支持
并發(fā)度并發(fā)度極高。本身是用Erlang語言寫的,并發(fā)性能高。并發(fā)度高并發(fā)度高并發(fā)度高。

綜上對比:從各個維度對目前主流的MQ進行,以及目前的使用情況來看,針對日志的較大的場景,建議使用Kafka,就并發(fā)和消息的堆積能力來說,這方面kafka是最優(yōu)秀的,ActivitMQ,和rabbitMQ作為老牌MQ,由于入場時間較早,已經(jīng)占領(lǐng)了較大的市場,市場占有率較高,但由于實現(xiàn)的語言比較小眾,擴展方面存在一定的短板;RocketMQ作為國產(chǎn)的MQ,且開源時間較晚,高并發(fā)情況下有很不錯的性能表現(xiàn),特別是在多個topic的情況下,性能依舊非常穩(wěn)定,且支持已上絕大多數(shù)的特性,特別是用java開發(fā),所以有比較好的擴展性,是一個不錯的選擇,后續(xù)的關(guān)于MQ的文章也是基于RocketMQ來寫。

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的主流消息队列MQ对比的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。