国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

架構師應該使用Kafka還是Rabbit MQ

汽車玩家 ? 來源:今日頭條 ? 作者:聞數起舞 ? 2020-05-03 18:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

介紹

作為處理許多基于微服務的系統的軟件架構師,我經常遇到一個不斷重復的問題:"我應該使用RabbitMQ還是Kafka?" 由于某些原因,許多開發人員認為這些技術是可互換的。 盡管在某些情況下確實如此,但這些平臺之間存在各種潛在的差異。

結果,不同的方案需要不同的解決方案,選擇錯誤的方案可能會嚴重影響您設計,開發和維護軟件解決方案的能力。

本文的目的是首先介紹基本的異步消息傳遞模式。 然后,它將繼續介紹RabbitMQ和Kafka及其內部結構。 第2部分將重點介紹這些平臺之間的關鍵區別,它們的各種優缺點以及如何在兩者之間進行選擇。

異步消息傳遞模式

異步消息傳遞是一種消息傳遞方案,其中生產者的消息生產與消費者的消息處理不相關。 在處理消息傳遞系統時,我們通常會確定兩種主要的消息傳遞模式-消息排隊和發布/訂閱。

消息隊列

在消息隊列通信模式中,隊列在時間上使生產者與消費者脫鉤。 多個生產者可以將消息發送到同一隊列。 但是,當使用者處理郵件時,該郵件將被鎖定或從隊列中刪除,并且不再可用。 只有一個消費者消費一條特定的消息。

架構師應該使用Kafka還是Rabbit MQ

Message queuing

附帶說明一下,如果使用者無法處理某條消息,則消息傳遞平臺通常會將消息返回到隊列中,以供其他使用者使用。 除了臨時解耦,隊列還使我們能夠獨立地擴展生產者和消費者的規模,并提供一定程度的容錯能力以應對處理錯誤。

發布/訂閱

在發布/訂閱(或pub / sub)通信模式中,多個訂戶可以同時接收和處理一條消息。

架構師應該使用Kafka還是Rabbit MQ

Publish/subscribe

例如,此模式允許發布者通知所有訂閱者系統中發生了某些事情。 許多排隊平臺通常將pub / sub與術語主題相關聯。 在RabbitMQ中,主題是pub / sub實現的一種特定類型(確切地說是一種交換類型),但是在本篇文章中,我將主題稱為pub / sub整體的表示。

一般而言,訂閱有兩種類型:

· 臨時訂閱,僅在使用者啟動并運行時,訂閱才處于活動狀態。 使用者關閉后,其訂閱和尚未處理的消息就會丟失。

· 長期訂閱,只要未明確刪除訂閱,訂閱就會一直保留。 當使用者關閉時,消息傳遞平臺將維護訂閱,并且稍后可以恢復消息處理。

RabbitMQ

RabbitMQ是消息代理的實現,通常稱為服務總線。 它本身支持上述兩種消息傳遞模式。 消息代理的其他流行實現包括ActiveMQ,ZeroMQ,Azure服務總線和Amazon Simple Queue Service(SQS)。 所有這些實現都有很多共同點。 本文中描述的許多概念都適用于大多數概念。

消息隊列

RabbitMQ支持開箱即用的經典消息隊列。 開發人員定義命名隊列,然后發布者可以將消息發送到該命名隊列。 消費者進而使用相同的隊列來檢索消息以對其進行處理。

信息交流

RabbitMQ通過使用消息交換來實現pub / sub。 發布者將其消息發布到消息交換,而不知道這些消息的訂閱者是誰。

每個希望訂閱交換的消費者都會創建一個隊列。 然后,消息交換將產生的消息排隊,以供消費者使用。 它還可以基于各種路由規則為某些訂戶過濾消息。

架構師應該使用Kafka還是Rabbit MQ

RabbitMQ message exchange

請務必注意,RabbitMQ支持臨時訂閱和持久訂閱。 消費者可以通過RabbitMQ的API決定要使用的訂閱類型。

由于RabbitMQ的體系結構,我們還可以創建一種混合方法-一些訂戶形成消費者組,這些消費者組以特定隊列中競爭的消費者的形式一起處理消息。 通過這種方式,我們實現了發布/訂閱模式,同時還允許某些訂閱者擴大規模以處理收到的消息。

架構師應該使用Kafka還是Rabbit MQ

Pub/sub and queuing combined

Apache Kafka

Apache Kafka不是消息代理的實現。 而是一個分布式流媒體平臺。

與基于隊列和交換的RabbitMQ不同,Kafka的存儲層是使用分區的事務日志實現的。 Kafka還提供用于實時處理流的Streams API和可輕松與各種數據源集成的Connector API。 但是,這些不在本文的討論范圍之內。

云供應商為Kafka的存儲層提供了替代解決方案。 這些解決方案包括Azure事件中心,在某種程度上還包括AWS Kinesis數據流。 Kafka的流處理功能也有特定于云的開源替代方案,但是同樣,這些不在本文的討論范圍之內。

話題 Topic

Kafka沒有實現隊列的概念。 相反,Kafka將記錄的集合存儲在稱為主題的類別中。

對于每個主題,Kafka維護消息的分區日志。 每個分區都是一個有序的,不可變的記錄序列,在該記錄中連續附加消息。

當這些分區到達時,Kafka會將消息附加到這些分區。 默認情況下,它使用循環分區程序在各個分區之間均勻分布消息。

生產者可以修改此行為以創建消息的邏輯流。 例如,在多租戶應用程序中,我們可能想根據每個消息的租戶ID創建邏輯消息流。 在物聯網場景中,我們可能希望不斷將每個生產者的身份映射到特定分區。 確保來自同一邏輯流的所有消息都映射到同一分區,以確保將其傳遞給消費者。

架構師應該使用Kafka還是Rabbit MQ

Kafka producers

使用者通過維持這些分區的偏移量(或索引)并順序讀取它們來消費消息。

單個使用者可以使用多個主題,并且使用者可以擴展到可用分區的數量。

因此,在創建主題時,應仔細考慮該主題上消息傳遞的預期吞吐量。 一起工作以消費主題的一組消費者稱為消費群體。 Kafka的API通常會處理消費者組中消費者之間的分區處理與消費者當前分區偏移量的存儲之間的平衡。

架構師應該使用Kafka還是Rabbit MQ

Kafka consumers

使用Kafka實現消息傳遞模式

Kafka的實現非常適合pub / sub模式。

生產者可以將消息發送到特定主題,而多個消費者組可以使用同一條消息。 每個消費者組可以單獨擴展以處理負載。 由于使用者維護其分區偏移量,因此他們可以選擇具有持久性的訂閱,該持久性訂閱在重新啟動或臨時訂閱期間保持其偏移量,這將丟棄偏移量,并在每次啟動時從每個分區中的最新記錄重新啟動。

但是,它不適用于消息隊列模式。 當然,我們可以只包含一個消費者組來模擬一個經典消息隊列。 然而,這有多個缺點。本文的第2部分將詳細討論。

請務必注意,Kafka會將郵件保留在分區中,直到預定的時間,無論消費者是否消費了這些郵件。 這種保留意味著消費者可以自由地重讀過去的消息。 此外,開發人員還可以使用Kafka的存儲層來實現各種機制,例如事件源和審核日志。

進一步閱讀

如果您想了解有關RabbitMQ和Kafka的內部實現的更多信息,我建議您使用以下資源:

· AMQP 0.9.1模型解釋— RabbitMQ

· Apache Kafka簡介

結束語

盡管RabbitMQ和Kafka有時可以互換,但是它們的實現卻有很大的不同。 因此,我們無法將它們視為同一類工具的成員; 一個是消息代理,另一個是分布式流平臺。

作為解決方案架構師,我們應該承認這些差異,并積極考慮在給定場景下應使用哪種類型的解決方案。 第2部分解決了這些差異,并提供了何時使用它們的指南。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 軟件架構
    +關注

    關注

    0

    文章

    64

    瀏覽量

    10640
  • kafka
    +關注

    關注

    0

    文章

    55

    瀏覽量

    5570
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    高通Oryon架構之父宣布離職:曾一手定義移動芯片黃金時代

    電子發燒友綜合報道 近日,全球半導體領域的傳奇架構師、高通工程高級副總裁杰拉德·威廉姆斯三世(Gerard Williams III) 在領英上正式宣布辭去高通職務,他表示將“開啟人生新篇章”,但未
    的頭像 發表于 02-05 13:44 ?2014次閱讀

    工程之夜系列分享第三十九篇:Kafka、RocketMQ、JMQ 存儲架構深度對比

    引言 消息隊列的存儲架構是決定其可靠性、吞吐量、延遲性能的核心因素,直接影響業務場景適配能力。本文聚焦三款主流消息隊列 ——Kafka(LinkedIn 開源,側重高吞吐)、RocketMQ(阿里
    的頭像 發表于 01-13 16:19 ?182次閱讀
    工程<b class='flag-5'>師</b>之夜系列分享第三十九篇:<b class='flag-5'>Kafka</b>、RocketMQ、JMQ 存儲<b class='flag-5'>架構</b>深度對比

    廣和通小尺寸低功耗Cat.M模組MQ771-GL實現送樣,專注資產追蹤應用

    11月,廣和通宣布Cat.M模組MQ771-GL正式進入工程送樣階段。MQ771-GL憑借極致尺寸、超低功耗、全球頻段覆蓋和穩定網絡兼容性四大核心優勢,為資產追蹤等物聯網場景提供高性價比的連接
    的頭像 發表于 11-20 10:59 ?323次閱讀
    廣和通小尺寸低功耗Cat.M模組<b class='flag-5'>MQ</b>771-GL實現送樣,專注資產追蹤應用

    MPN12AD160-MQ:替代ADI/TI/TOREX電源芯片

    MPN12AD160-MQ是Cyntec(乾坤)推出的大電流微型POL DC-DC電源模塊,專為 AI/GPU 板卡等高功耗、高密度場景打造,集成兩顆 DC-DC 芯片,采用雙相 60A 并聯
    發表于 11-20 10:09

    rt_mq_recv函數中timeout作用是什么?

    請參看附件和圖片, rt_mq_recv() 函數while (mq-&gt;entry == 0)代碼塊中會去檢查timeout值,重新計算timeout,但timeout重新計算
    發表于 09-29 06:27

    rt_msgqueue rt_mq_recv()接收卡死的原因?

    在使用消息隊列rt_mq_recv時候卡死 static struct rt_messagequeue TX_CanMsg_mq; __attribute__((aligned (4
    發表于 09-10 07:47

    在TR組件優化與存算一體架構中構建技術話語權

    需要掌握HBM2e接口協議 類腦計算要求理解脈沖神經網絡(SNN) 光子計算涉及硅基光電子集成技術 參與某國家級AI芯片項目的團隊透露,核心研發人員均具備\"處理器架構師\"
    發表于 08-26 10:40

    電子發燒友工程看!電子領域評職稱,技術之路更扎實

    、ADI 等廠商的技術對接資格。? 對嵌入式開發工程來說,職稱是崗位競爭力的 “加分項”。隨著物聯網、AI 技術普及,“高級嵌入式開發工程”“嵌入式系統架構師(中級)” 等職稱,成了企業篩選
    發表于 08-20 13:53

    宏集分享 | 集中式架構還是分布式架構?SCADA架構選型的新趨勢

    HongraxIIoT在工業數字化不斷推進的今天,SCADA系統早已不僅是簡單的數據監控工具,它正在成為保障企業運行效率、安全性和業務連續性的戰略核心。而“選擇集中式、分布式還是混合式架構?”也正
    的頭像 發表于 08-08 18:15 ?662次閱讀
    宏集分享 | 集中式<b class='flag-5'>架構</b><b class='flag-5'>還是</b>分布式<b class='flag-5'>架構</b>?SCADA<b class='flag-5'>架構</b>選型的新趨勢

    Tenstorrent 首席架構師:未來 RISC-V 會是計算機的主流

    強,適合定制化需求等。在 7 月 17 日第五屆(2025)RISC-V 中國峰會的主論壇上,Tenstorrent 首席架構師 Wei-Han Lien 表示,Tenstorrent 投入了大量人力
    發表于 07-17 11:26 ?1483次閱讀

    Kafka生產環境應用方案

    Apache Kafka作為分布式流處理平臺,在現代大數據架構中扮演著消息中間件的核心角色。本文將從運維工程的角度,詳細介紹Kafka在生產環境中的部署方案、配置優化、監控運維等關鍵
    的頭像 發表于 07-09 09:56 ?583次閱讀

    如何釋放異構計算的潛能?Imagination與Baya Systems的系統架構實踐啟示

    報告作者:PallaviSharma,Imaginaiton產品管理總監Dr.EricNorige,BayaSystems首席軟件架構師關注Imagination公眾號,消息框發送【異構計算】,即可
    的頭像 發表于 06-13 08:33 ?1137次閱讀
    如何釋放異構計算的潛能?Imagination與Baya Systems的系統<b class='flag-5'>架構</b>實踐啟示

    單片機實例項目:MQ系列模塊資料

    單片機實例項目:MQ系列模塊資料,推薦下載!
    發表于 06-03 21:11

    Kafka工作流程及文件存儲機制

    Kafka 中消息是以 topic 進行分類的,生產者生產消息,消費者消費消息,都是面向 topic 的。
    的頭像 發表于 05-19 10:14 ?925次閱讀
    <b class='flag-5'>Kafka</b>工作流程及文件存儲機制

    AD9253對時鐘抖動的要求怎么樣,應該選擇怎樣的時鐘架構

    1:這款芯片支持連續采樣、沿觸發和外觸發工作方式 2:時鐘必須使用時鐘芯片配置才行?使用有源晶振是否可以? 3:這款芯片對時鐘抖動的要求怎么樣,應該選擇怎樣的時鐘架構
    發表于 04-15 06:43