黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 為什么選擇MQ消息隊(duì)列框架

為什么選擇MQ消息隊(duì)列框架

更新時間:2021-08-09 16:20:43 來源:動力節(jié)點(diǎn) 瀏覽984次

消息隊(duì)列

即Message Queue,我們從數(shù)據(jù)結(jié)構(gòu)來理解的話,Queue是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)。所以意思就是將信息(通常指傳輸?shù)臄?shù)據(jù))放入一個隊(duì)列中。

消息隊(duì)列的兩種模式:

消息隊(duì)列框架

點(diǎn)對點(diǎn)模式

可以看到,點(diǎn)對點(diǎn)模式下有可以有多個消費(fèi)者,但是對于同一個消息,只會有一個消費(fèi)者能訪問。通常可以用于異步推送消息,保存日志等。

消息隊(duì)列框架

發(fā)布訂閱模式

發(fā)布訂閱模式下,對于同一個主題(topic),任何訂閱了topic的消費(fèi)者都能拉取此消息。通常可以用于構(gòu)建消息系統(tǒng)。

在項(xiàng)目中使用了消息隊(duì)列有哪些優(yōu)勢呢?

  • 解耦。各個系統(tǒng)之間不存在直接調(diào)用。而是通過消息的傳輸方式去達(dá)成業(yè)務(wù)需求,這個對于系統(tǒng)的侵入性很低。
  • 提高系統(tǒng)的性能。異步處理的重要性。
  • 便于分布式擴(kuò)容。原來的代碼不需要改動,只需要增加新的功能就行。
  • 數(shù)據(jù)持久化。
  • 保證部分場景下,數(shù)據(jù)的有序性。
  • 數(shù)據(jù)流處理。能更好、實(shí)時的處理大數(shù)據(jù)統(tǒng)計(jì)和分析。
  • 分析下市面上比較流行的幾種MQ,ActiveMQ、RabbitMQ、Kafka、RocketMQ。

ActiveMQ

由Apache軟件基金會所開源,基于java語言開發(fā)。算是一個很老的MQ框架了,同時也是一個非常成熟的框架了,早期在很多互聯(lián)網(wǎng)公司得到廣泛的應(yīng)用。

文檔齊全,支持多種語言,支持多種的高級特性,如消息組、通配符、組合隊(duì)列等。同時對Spring有很好的支持,可以輕易的通過配置文件集成到系統(tǒng)中。

缺點(diǎn):

  • 吞吐量低。ActiveMQ持久化信息的時候是需要建立索引的,寫性能下降,導(dǎo)致吞吐量下降。
  • 沒有分片功能。當(dāng)一個服務(wù)器承受不了更多的消息,就需要進(jìn)行切分了。而ActiveMQ不支持,需要自己去實(shí)現(xiàn)。
  • 版本迭代較慢。

RabbitMQ

基于Erlang語言編寫的一套開源(MPL)的消息隊(duì)列服務(wù)軟件,Erlang語言以高性能、健壯、可伸縮出名,所以RabbitMQ性能很強(qiáng),吞吐量也很高,支持多種協(xié)議,集群化,消息的可靠執(zhí)行特性等優(yōu)勢,很適合企業(yè)的開發(fā)。

缺點(diǎn):

吞吐量較低。

由于RabbitMQ支持的協(xié)議多,所以如果要好好學(xué)習(xí)的話,成本較高。

Kafka

由linkedin開源的,基于scala語言實(shí)現(xiàn)的一個高性能分布式Publish/Subscribe消息隊(duì)列系統(tǒng)。

其實(shí)Kafka的由來也挺有意思的。話說linkedin起初是使用ActiveMQ來進(jìn)行數(shù)據(jù)系統(tǒng)中數(shù)據(jù)交換的,上面都說了ActiveMQ性能不咋滴,所以linkedin決定研發(fā)自己的消息傳遞系統(tǒng),也就是Kafka。

Kafka跟其余的消息中間件比較,那是出名的第一快,以并發(fā)量大,社區(qū)活躍備受廣大組織的喜愛。

Kafka提供了超高的吞吐量,ms級別的延遲,極高的可用性以及可靠性,而且分布式可以任意擴(kuò)展,還支持大數(shù)據(jù)框架Hadoop數(shù)據(jù)并行加載。

缺點(diǎn):

單機(jī)隊(duì)列不能太高,超過64會導(dǎo)致性能下降。

消息重復(fù)消費(fèi)。對數(shù)據(jù)準(zhǔn)確性會產(chǎn)生影響。

缺乏一套完整的管理和監(jiān)控工具。

消費(fèi)失敗不支持重試。

RocketMQ

由阿里開源,基于Java實(shí)現(xiàn)的一套分布式消息中間件,已經(jīng)捐獻(xiàn)給Apache基金會。

起初阿里也使用ActiveMQ做消息系統(tǒng),可能也是由于性能、可用性問題,然后才自研RocketMQ。

RocketMQ思路起源于Kafka,單機(jī)吞吐量高,消息的高可靠性,如果做好了參數(shù)配置,基本不會存在消息丟失的可能,擴(kuò)展性強(qiáng),支持事務(wù)等。再怎么說,RocketMQ好歹經(jīng)歷過淘寶雙11的壓力,在阿里內(nèi)部項(xiàng)目中廣泛應(yīng)用。

缺點(diǎn):

支持的語言極少,就java和c++。

社區(qū)活躍明顯比不上kafka和RabbitMQ。

功能不夠完整,沒去實(shí)現(xiàn)JMS接口,系統(tǒng)遷移需要修改大量的代碼,增加了維護(hù)成本。

以上就是動力節(jié)點(diǎn)小編介紹的"為什么選擇MQ消息隊(duì)列框架",希望對大家有幫助,想了解更多可查看Java教程。動力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 在线h片| 久久精品成人国产午夜 | 欧美做a一级视频免费观看 欧美最猛性xxxxx短视频 | 久久综合欧美成人 | 中文字幕在线观看你懂的 | 国产一区二区高清 | 一级片免费在线播放 | 成人影院免费在线观看 | h视频在线观看视频观看 | 久久午夜国产片 | 亚洲波多野结衣 | 亚洲日本韩国欧美 | 三级伦理在线播放 | 亚洲一区二区三区在线网站 | 亚洲色图 欧美 | 成人黄色大片 | 欧美大交乱xxxx | 中国一级毛片免费看视频 | 久久综合婷婷香五月 | 透明奶罩的邻居三级在线观看 | 黄色片免费看看 | 亚洲欧美日韩一区高清中文字幕 | 久草视频福利 | 黄色一级视频免费观看 | 99成人精品| 日批免费视频不要会员 | 欧美激情人成日本在线视频 | 成年网站在线播放 | 久久久免费观看 | 日韩在线视精品在亚洲 | 日本在线一区二区 | 亚洲福利三区 | 国内一级野外a一级毛片 | 亚洲国产第一区二区香蕉日日 | 花蝴蝶亚洲一区二区三区 | 亚洲精品xxxx | 2020久久精品国产免费 | 国产在线精品一区二区三区 | 日本三级韩国三级三级a级按摩 | 亚洲日韩精品欧美一区二区 | eeuss免费鲁丝片 |