日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

RabbitMQ vs Kafka,我到底該如何選?

來源: 責(zé)編: 時(shí)間:2024-01-26 09:04:56 287觀看
導(dǎo)讀介紹作為一名有著大量微服務(wù)系統(tǒng)處理經(jīng)驗(yàn)的軟件架構(gòu)師,我經(jīng)常遇到一個(gè)不斷重復(fù)的問題:“我應(yīng)該使用 RabbitMQ 還是 Kafka?”出于某種原因,許多開發(fā)人員認(rèn)為這些技術(shù)是可以互換的。雖然在某些情況下確實(shí)如此,但 RabbitMQ 還

介紹

EuJ28資訊網(wǎng)——每日最新資訊28at.com

作為一名有著大量微服務(wù)系統(tǒng)處理經(jīng)驗(yàn)的軟件架構(gòu)師,我經(jīng)常遇到一個(gè)不斷重復(fù)的問題:“我應(yīng)該使用 RabbitMQ 還是 Kafka?”出于某種原因,許多開發(fā)人員認(rèn)為這些技術(shù)是可以互換的。雖然在某些情況下確實(shí)如此,但 RabbitMQ 還是 Kafka 之間存在根本上的差異。EuJ28資訊網(wǎng)——每日最新資訊28at.com

因此,不同的場(chǎng)景需要不同的解決方案,選擇錯(cuò)誤的方案會(huì)嚴(yán)重影響我們的軟件開發(fā)設(shè)計(jì)以及后續(xù)維護(hù)軟件。EuJ28資訊網(wǎng)——每日最新資訊28at.com

本文的目標(biāo)首先是介紹基本的異步消息傳遞模式。然后繼續(xù)介紹 RabbitMQ 和 Kafka 及其內(nèi)部結(jié)構(gòu)。第 2 部分重點(diǎn)介紹了這些平臺(tái)之間的關(guān)鍵區(qū)別、它們的各種優(yōu)點(diǎn)和缺點(diǎn),以及如何在兩者之間進(jìn)行選擇。EuJ28資訊網(wǎng)——每日最新資訊28at.com

異步消息傳遞模式

異步消息傳遞是一種消息傳遞方案,其中生產(chǎn)者的消息生成與消費(fèi)者的消息處理分離。在消息傳遞系統(tǒng)中,我們通常會(huì)分為兩種主要的消息傳遞模式:隊(duì)列模式和發(fā)布/訂閱模式。EuJ28資訊網(wǎng)——每日最新資訊28at.com

隊(duì)列模式

在隊(duì)列模式中,隊(duì)列暫時(shí)將生產(chǎn)者與消費(fèi)者解耦。多個(gè)生產(chǎn)者可以向同一個(gè)隊(duì)列發(fā)送消息。然后當(dāng)消費(fèi)者處理消息時(shí),消息會(huì)被鎖定然后從隊(duì)列中刪除,并且不再可用。EuJ28資訊網(wǎng)——每日最新資訊28at.com

隊(duì)列模式通常就是一個(gè)消息只能被一個(gè)消費(fèi)者處理。EuJ28資訊網(wǎng)——每日最新資訊28at.com

消息隊(duì)列消息隊(duì)列EuJ28資訊網(wǎng)——每日最新資訊28at.com

附帶說明一下,如果消費(fèi)者無法處理某個(gè)消息,消息平臺(tái)通常會(huì)將消息返回到隊(duì)列,以供其他消費(fèi)者使用。除了解耦之外,隊(duì)列還允許我們擴(kuò)展生產(chǎn)者和消費(fèi)者,并針對(duì)錯(cuò)誤處理提供容錯(cuò)能力。EuJ28資訊網(wǎng)——每日最新資訊28at.com

發(fā)布/訂閱模式

在發(fā)布/訂閱模式中,單個(gè)消息可以由多個(gè)訂閱者同時(shí)接收和處理。EuJ28資訊網(wǎng)——每日最新資訊28at.com

發(fā)布/訂閱發(fā)布/訂閱EuJ28資訊網(wǎng)——每日最新資訊28at.com

例如,此模式允許發(fā)布者通知所有訂閱者系統(tǒng)中發(fā)生了某些情況。在 RabbitMQ 中,主題是一種特定類型的 pub/sub 實(shí)現(xiàn)(確切地說是一種交換類型),但在本文中,我將主題稱為整個(gè) pub/sub 的表示。EuJ28資訊網(wǎng)——每日最新資訊28at.com

一般來說,訂閱有兩種類型:EuJ28資訊網(wǎng)——每日最新資訊28at.com

  • 臨時(shí)訂閱,其中訂閱僅在使用者啟動(dòng)并運(yùn)行時(shí)才有效。一旦消費(fèi)者關(guān)閉,他們的訂閱和尚未處理的消息就會(huì)丟失。
  • 持久訂閱,只要未顯式刪除,訂閱就會(huì)得到維護(hù)。當(dāng)消費(fèi)者關(guān)閉時(shí),消息平臺(tái)會(huì)維持訂閱,稍后可以恢復(fù)消息處理。

RabbitMQ

RabbitMQ 是消息代理的一種實(shí)現(xiàn) — 通常稱為服務(wù)總線。它本身支持上述兩種消息傳遞模式。消息代理的其他流行實(shí)現(xiàn)包括 ActiveMQ、ZeroMQ、Azure 服務(wù)總線和 Amazon Simple Queue Service (SQS)。所有這些實(shí)現(xiàn)都有很多共同點(diǎn),本文中描述的許多概念適用于其中的大多數(shù)。EuJ28資訊網(wǎng)——每日最新資訊28at.com

Queues

RabbitMQ 支持開箱即用的經(jīng)典消息隊(duì)列。開發(fā)人員定義命名隊(duì)列,然后發(fā)布者可以將消息發(fā)送到該命名隊(duì)列。反過來,消費(fèi)者使用相同的隊(duì)列來檢索消息來處理它們。EuJ28資訊網(wǎng)——每日最新資訊28at.com

Message exchanges

RabbitMQ 通過使用消息交換機(jī)來實(shí)現(xiàn) pub/sub。發(fā)布者將其消息發(fā)布到消息交換機(jī),不用知道這些消息的訂閱者是誰。EuJ28資訊網(wǎng)——每日最新資訊28at.com

每個(gè)訂閱交換機(jī)的消費(fèi)者都會(huì)創(chuàng)建一個(gè)隊(duì)列,然后消息交換機(jī)將生成的消息排隊(duì)以供消費(fèi)者使用。它還可以根據(jù)各種路由規(guī)則過濾某些訂閱者的消息。EuJ28資訊網(wǎng)——每日最新資訊28at.com

RabbitMQ message exchangeRabbitMQ message exchangeEuJ28資訊網(wǎng)——每日最新資訊28at.com

值得注意的是,RabbitMQ 支持臨時(shí)訂閱和持久訂閱。消費(fèi)者可以通過 RabbitMQ 的 API 決定他們想要使用的訂閱類型。EuJ28資訊網(wǎng)——每日最新資訊28at.com

由于 RabbitMQ 的架構(gòu),我們還可以創(chuàng)建一種混合方法,其中一些訂閱者形成消費(fèi)者組,這些消費(fèi)者組以特定隊(duì)列上競(jìng)爭(zhēng)消費(fèi)者的形式共同處理消息。通過這種方式,我們實(shí)現(xiàn)了發(fā)布/訂閱模式,同時(shí)還允許一些訂閱者擴(kuò)展以處理接收到的消息。EuJ28資訊網(wǎng)——每日最新資訊28at.com

發(fā)布/訂閱和隊(duì)列相結(jié)合發(fā)布/訂閱和隊(duì)列相結(jié)合EuJ28資訊網(wǎng)——每日最新資訊28at.com

Apache Kafka

Apache Kafka 是一個(gè)分布式流處理平臺(tái)。EuJ28資訊網(wǎng)——每日最新資訊28at.com

與基于隊(duì)列和交換的 RabbitMQ 不同,Kafka 的存儲(chǔ)層是使用分區(qū)事務(wù)日志實(shí)現(xiàn)的。Kafka 還提供了 Streams API 來實(shí)時(shí)處理流,以及 Connectors API 來輕松與各種數(shù)據(jù)源集成。不過,這些超出了本文的范圍。EuJ28資訊網(wǎng)——每日最新資訊28at.com

云服務(wù)商為 Kafka 的存儲(chǔ)層提供了替代解決方案。這些解決方案包括 Azure 事件中心,在某種程度上還包括 AWS Kinesis Data Streams。Kafka 的流處理功能還有特定于云的開源替代方案,同樣,這些也超出了本文的范圍。EuJ28資訊網(wǎng)——每日最新資訊28at.com

Topics

Kafka 沒有實(shí)現(xiàn)隊(duì)列的概念。Kafka 將記錄集合存儲(chǔ)在稱為主題的類別中。EuJ28資訊網(wǎng)——每日最新資訊28at.com

對(duì)于每個(gè)主題,Kafka 都會(huì)維護(hù)一個(gè)分區(qū)的消息日志。每個(gè)分區(qū)都是一個(gè)有序的、不可變的記錄序列,其中不斷附加消息。EuJ28資訊網(wǎng)——每日最新資訊28at.com

Kafka 在消息到達(dá)時(shí)將其附加到這些分區(qū)。默認(rèn)情況下,它使用循環(huán)分區(qū)器在分區(qū)之間均勻地傳播消息。EuJ28資訊網(wǎng)——每日最新資訊28at.com

生產(chǎn)者可以修改此行為以創(chuàng)建邏輯消息流。例如在多租戶應(yīng)用程序中,我們可能希望根據(jù)每條消息的租戶 ID 創(chuàng)建邏輯消息流。在物聯(lián)網(wǎng)場(chǎng)景中,我們可能希望將每個(gè)生產(chǎn)者的身份不斷映射到特定分區(qū)。確保來自同一邏輯流的所有消息映射到同一分區(qū),以保證它們按順序傳遞給消費(fèi)者。EuJ28資訊網(wǎng)——每日最新資訊28at.com

Kafka producersKafka producersEuJ28資訊網(wǎng)——每日最新資訊28at.com

消費(fèi)者通過維護(hù)這些分區(qū)的偏移量(或索引)并按順序讀取它們來消費(fèi)消息。EuJ28資訊網(wǎng)——每日最新資訊28at.com

單個(gè)消費(fèi)者可以使用多個(gè)主題,并且消費(fèi)者可以擴(kuò)展,直至與可用分區(qū)數(shù)量一致。EuJ28資訊網(wǎng)——每日最新資訊28at.com

因此,在創(chuàng)建主題時(shí),應(yīng)仔細(xì)考慮該主題的消息傳遞的預(yù)期吞吐量。共同消費(fèi)某個(gè)主題的一組消費(fèi)者稱為消費(fèi)者組。Kafka 的 API 通常負(fù)責(zé)消費(fèi)者組中消費(fèi)者之間分區(qū)處理的平衡以及消費(fèi)者當(dāng)前分區(qū)偏移量的存儲(chǔ)。EuJ28資訊網(wǎng)——每日最新資訊28at.com

Kafka consumersKafka consumersEuJ28資訊網(wǎng)——每日最新資訊28at.com

使用 Kafka 實(shí)現(xiàn)消息傳遞

Kafka 的內(nèi)部實(shí)現(xiàn)其實(shí)很好地反映了 pub/sub 模式。EuJ28資訊網(wǎng)——每日最新資訊28at.com

生產(chǎn)者可以向特定主題發(fā)送消息,多個(gè)消費(fèi)者組可以消費(fèi)同一條消息。每個(gè)消費(fèi)者組都可以單獨(dú)擴(kuò)展以處理負(fù)載。由于消費(fèi)者維護(hù)其分區(qū)偏移量,因此他們可以選擇持久訂閱(在重新啟動(dòng)時(shí)維持其偏移量)或臨時(shí)訂閱(即丟棄偏移量并在每次啟動(dòng)時(shí)從每個(gè)分區(qū)中的最新記錄重新啟動(dòng))。EuJ28資訊網(wǎng)——每日最新資訊28at.com

Kafka 其實(shí)是不太適合隊(duì)列模式的消息傳遞。當(dāng)然我們可以創(chuàng)建一個(gè)只有一個(gè)消費(fèi)者組的主題來模擬經(jīng)典的消息隊(duì)列。但這有多個(gè)缺點(diǎn),在本文第 2 部分我們將詳細(xì)討論。EuJ28資訊網(wǎng)——每日最新資訊28at.com

第 2 部分文章地址:https://betterprogramming.pub/rabbitmq-vs-kafka-1779b5b70c41EuJ28資訊網(wǎng)——每日最新資訊28at.com

值得注意的是,無論消費(fèi)者是否消費(fèi)了這些消息,Kafka 都會(huì)將消息保留在分區(qū)中直至預(yù)先配置的時(shí)間段內(nèi)。這種保留意味著消費(fèi)者可以自由地重讀過去的消息。此外,開發(fā)人員還可以使用 Kafka 的存儲(chǔ)層來實(shí)現(xiàn)事件溯源和審計(jì)日志等機(jī)制。EuJ28資訊網(wǎng)——每日最新資訊28at.com

結(jié)束語

雖然 RabbitMQ 和 Kafka 有時(shí)可以互換,但它們的實(shí)現(xiàn)卻截然不同。因此,我們不能將它們視為同一類別工具的成員。一個(gè)是消息代理,另一個(gè)是分布式流平臺(tái)。EuJ28資訊網(wǎng)——每日最新資訊28at.com

作為解決方案架構(gòu)師,我們應(yīng)該認(rèn)識(shí)到這些差異,并積極考慮針對(duì)給定場(chǎng)景應(yīng)使用哪些類型的解決方案。EuJ28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-68337-0.htmlRabbitMQ vs Kafka,我到底該如何選?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 五個(gè)不容錯(cuò)過的VS Code殺手級(jí)插件

下一篇: 突破性能瓶頸,C++代碼優(yōu)化攻略

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 官方承諾:K60至尊版將會(huì)首批升級(jí)MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版將會(huì)搭載天璣9200+處理器和獨(dú)顯芯片X7的同時(shí),Redmi給出了官方承諾,K60至尊重大更新首批升級(jí),會(huì)首批推送MIUI 15。也就是說雖然
  • 十個(gè)可以手動(dòng)編寫的 JavaScript 數(shù)組 API

    JavaScript 中有很多API,使用得當(dāng),會(huì)很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對(duì)它們進(jìn)行一次小總結(jié)。現(xiàn)在開始吧。1.forEach()forEach()用于遍歷數(shù)組接收一參
  • 一年經(jīng)驗(yàn)在二線城市面試后端的經(jīng)驗(yàn)分享

    忠告這篇文章只適合2年內(nèi)工作經(jīng)驗(yàn)、甚至沒有工作經(jīng)驗(yàn)的朋友閱讀。如果你是2年以上工作經(jīng)驗(yàn),請(qǐng)果斷劃走,對(duì)你沒啥幫助~主人公這篇文章內(nèi)容來自 「升職加薪」星球星友 的投稿,坐
  • 如何使用JavaScript創(chuàng)建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經(jīng)瀏覽過購物網(wǎng)站,可能遇到過圖像放大功能。它可以讓您放大圖像的特定區(qū)域,以便瀏覽。結(jié)合這個(gè)小小的重要功能可以大大改善您網(wǎng)站的用戶體驗(yàn)
  • 騰訊蓋樓,字節(jié)拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之“想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗(yàn)嗎?一起上晶核,即刻暴打!”曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級(jí)不香了。俗話說,兵無常勢(shì),水無常形,互聯(lián)網(wǎng)企業(yè)調(diào)整職級(jí)體系并不稀奇。7月13日,淘寶天貓集團(tuán)啟動(dòng)了近年來最大的人力制度改革,目前已形成一
  • 馮提莫簽約抖音公會(huì) 前“斗魚一姐”消失在直播間

    來源:直播觀察提起“馮提莫”這個(gè)名字,很多網(wǎng)友或許聽過,但應(yīng)該不記得她是哪位主播了。其實(shí),作為曾經(jīng)的“斗魚一姐”,馮提莫在游戲直播的年代影響力不輸于現(xiàn)
  • onebot M24巧系列一體機(jī)采用輕薄機(jī)身設(shè)計(jì),現(xiàn)已在各平臺(tái)開售

    onebot M24 巧系列一體機(jī)目前已在線上線下各平臺(tái)同步開售。onebot M24 巧系列采用一體化輕薄機(jī)身設(shè)計(jì),最薄處為 10.15mm,擁有寶石紅、午夜藍(lán)、石墨綠、雅致
  • 蘋果MacBook Pro 2021測(cè)試:仍不支持平滑滾動(dòng)

    據(jù)10月30日9to5 Mac 消息報(bào)道,蘋果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后獲得了不錯(cuò)的評(píng)價(jià),亮點(diǎn)包括行業(yè)領(lǐng)先的性能,令人印象深刻的電池續(xù)航,精美豐
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲三级视频| 一区精品在线播放| 欧美另类亚洲| 欧美色大人视频| 国产日韩一区欧美| 在线日韩电影| 99精品国产在热久久| 一区二区三区久久精品| 亚洲综合视频网| 久久人91精品久久久久久不卡| 欧美a级片网| 欧美午夜精品久久久久免费视| 国产乱人伦精品一区二区| 亚洲国产第一页| 一区二区三区黄色| 久久激情五月丁香伊人| 欧美国产一区二区在线观看 | 亚洲一二三区在线观看| 欧美中文在线观看| 欧美极品影院| 国产伦理精品不卡| 伊人色综合久久天天| av成人动漫| 久久久天天操| 国产精品白丝黑袜喷水久久久 | 亚洲视频一区| 久久久久久久高潮| 欧美特黄一区| 精品成人一区二区三区四区| 一本一道久久综合狠狠老精东影业| 性做久久久久久| 欧美jjzz| 国产日韩欧美在线播放| 亚洲精品乱码久久久久久日本蜜臀 | 午夜一区二区三视频在线观看 | 老司机成人网| 国产精品免费一区二区三区在线观看 | 欧美亚洲自偷自偷| 欧美日韩不卡| 在线观看的日韩av| 校园激情久久| 欧美日韩中文字幕综合视频| 一区福利视频| 午夜精品久久久久影视 | 欧美三级在线视频| 亚洲国内精品在线| 久久久久五月天| 国产精品推荐精品| 一本到高清视频免费精品| 久久免费午夜影院| 国产日韩精品一区观看| 在线午夜精品| 欧美理论在线播放| 亚洲国产欧美日韩| 久久久久久久综合| 国产午夜精品视频免费不卡69堂| 亚洲图片自拍偷拍| 欧美日韩一区二区高清| 亚洲裸体俱乐部裸体舞表演av| 久久亚洲一区二区| 国产一区自拍视频| 久久国产加勒比精品无码| 国产精品视频99| 亚洲一区二区黄色| 国产精品videosex极品| 日韩网站在线| 欧美精品在线观看播放| 亚洲激情视频在线播放| 免费在线观看一区二区| 一区二区在线观看av| 久久久久久香蕉网| 黄色一区二区三区| 久久免费视频观看| 永久域名在线精品| 久热国产精品视频| 亚洲第一黄色| 欧美暴力喷水在线| 91久久久久久| 欧美韩日精品| 亚洲精品色图| 欧美精品久久久久久久久老牛影院 | 黄色精品一二区| 久久激情综合网| 国产香蕉久久精品综合网| 欧美亚洲视频一区二区| 国产欧美日韩亚洲| 欧美在线观看一区二区三区| 国产人成一区二区三区影院| 欧美在线地址| 国产亚洲精品久久久久婷婷瑜伽 | 欧美成人第一页| 亚洲日本精品国产第一区| 欧美精彩视频一区二区三区| 亚洲卡通欧美制服中文| 欧美日韩另类丝袜其他| 中国日韩欧美久久久久久久久| 欧美视频一区二区三区在线观看| 亚洲视频第一页| 国产精品免费区二区三区观看| 亚洲欧美一区二区视频| 国产日韩在线一区| 久久人人看视频| 亚洲国产三级| 欧美日韩调教| 性欧美videos另类喷潮| 国产主播一区二区三区四区| 老司机精品福利视频| 亚洲三级视频在线观看| 欧美色播在线播放| 香蕉成人伊视频在线观看| 国内精品久久久| 欧美成人a视频| 亚洲视频在线一区| 国产综合久久久久久| 狠狠做深爱婷婷久久综合一区| 久久亚洲午夜电影| 99国产一区| 国产精品素人视频| 美女精品在线观看| 中日韩视频在线观看| 国产欧美视频一区二区| 狼人天天伊人久久| 在线视频欧美日韩| 国内精品视频一区| 欧美黄色精品| 欧美一二三视频| 最新精品在线| 国产美女精品在线| 欧美高清视频一区二区三区在线观看| 一区二区三区波多野结衣在线观看| 国产欧美在线| 欧美—级高清免费播放| 亚洲欧美bt| 在线日韩欧美视频| 国产精品你懂的在线欣赏| 久久在线视频在线| 亚洲一级网站| 亚洲第一天堂av| 欧美美女视频| 欧美日韩一级黄| 欧美视频一区二区三区…| 亚洲国产乱码最新视频| 久久综合电影一区| 国产精品久久久久久久浪潮网站 | 国产精品男gay被猛男狂揉视频| 欧美激情中文字幕在线| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 欧美日韩日本视频| 亚洲永久免费av| 欧美视频在线观看| 在线欧美不卡| 99re国产精品| 久久国产手机看片| 欧美**人妖| 欧美三日本三级少妇三2023 | 一区二区三区在线观看欧美| 中国亚洲黄色| 欧美视频免费在线| 亚洲人www| 欧美高清在线视频观看不卡| 亚洲国产精品va在看黑人| 欧美aⅴ一区二区三区视频| 最新亚洲激情| 欧美视频久久| 国产视频一区在线| 一区二区三区四区国产| 国产日韩成人精品| 美日韩丰满少妇在线观看| 久久一区视频| 亚洲福利视频二区| 欧美男人的天堂| 亚洲欧美日韩国产精品| 韩国精品久久久999| 男同欧美伦乱| 中文国产成人精品久久一| 欧美日韩国产成人精品| 在线观看91精品国产麻豆| 欧美风情在线观看| 亚洲视频在线播放| 美女国产一区| 欧美亚洲免费电影| 99国产精品国产精品久久| 亚洲国产另类久久精品| 在线观看国产精品淫| 在线观看成人小视频| 国产亚洲欧美中文| 国产婷婷色综合av蜜臀av| 国产精品永久免费视频| 亚洲欧美日韩综合一区| 玖玖玖国产精品| 久久精品九九| 欧美一区二区女人| 午夜精品电影| 校园春色综合网| 亚洲男女自偷自拍| 亚洲与欧洲av电影| 亚洲愉拍自拍另类高清精品| 中文日韩在线| 亚洲性人人天天夜夜摸| 亚洲一区二区三区精品动漫| 亚洲网友自拍| 亚洲欧美日韩国产中文| 午夜视频一区二区| 久久国产精品一区二区|