那曲檬骨新材料有限公司

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

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

3天內不再提示

給我兩分鐘,搞懂發布-訂閱模式很輕松!

億佰特物聯網應用專家 ? 2024-10-25 08:06 ? 次閱讀

什么是發布/訂閱模式?

舉一個生活中常見的例子說明:小李到某房產中介提出租房需求,根據需求,房產中介將之前房東發布的出租信息提供給小李選擇,小李確定租房后,中介會將信息同步給房東知曉。這是一個典型的發布/訂閱模式。房東可以看作是發布者,租戶看作是訂閱者,房產中介作為消息代理,發布者和訂閱者之間通過消息代理進行間接通信。

eb09ba72-9264-11ef-b5cd-92fbcf53809c.png

發布-訂閱模式演示(租房)

發布/訂閱模式特點:
①解耦:發布者和訂閱者之間沒有直接聯系,它們通過中間的消息代理(如消息隊列或事件總線)進行通信。這種解耦使得系統更加靈活,可以獨立地添加或移除發布者和訂閱者,而不會影響其他組件。②異步通信:發布者發布消息后不需要等待響應,可以繼續執行其他任務。訂閱者可以在方便的時候處理接收到的消息,不必立即響應。③一對多通信:一個發布者可以向多個訂閱者發送消息。多個發布者也可以向同一個主題發布消息,所有訂閱該主題的訂閱者都會收到這些消息。④動態訂閱:訂閱者可以在運行時動態地訂閱或取消訂閱某個主題。這種靈活性使得系統能夠適應不斷變化的需求。⑤廣播機制:消息會被廣播到所有訂閱了該主題的訂閱者。每個訂閱者都可以獨立處理消息,互不影響。

發布/訂閱(Pub/Sub,即Publish/Subscribe)是分布式系統中用于不同組件或服務之間異步通信的一種架構設計模式。盡管發布/訂閱基于消息隊列和事件代理等早期設計模式,但它更加靈活和可擴展。其關鍵在于,發布/訂閱允許在系統的不同組件之間傳遞消息,而這些組件之間無需知道彼此的身份(即它們是解耦的)。發布/訂閱模式的出現源于擴大信息系統規模的必要性。在互聯網時代之前,甚至在互聯網發展的初期,系統大多是通過靜態方式擴展的。然而,隨著互聯網的擴張和基于Web的應用程序的普及,以及移動設備和物聯網設備的廣泛應用,系統需要動態地擴展。發布/訂閱模式的解耦特性使其成為管理動態可擴展系統架構的理想選擇。發布/訂閱使得在不增加系統組件程序邏輯負擔的情況下管理擴展成為可能。

Pub/Sub架構

Pub/Sub提供了一個框架,用于在發布者(創建和發送消息的組件)和訂閱者(接收和使用消息的組件)之間交換消息。請注意,發布者不會以點對點方式向特定訂閱者發送消息。相反,使用中介-Pub/Sub消息代理,它將消息分組為稱為通道(或主題)的實體。

發布/訂閱模型工作原理? 訂閱者首先會選擇訂閱特定的主題,以便能夠接收該主題下的所有消息。? 隨后,發布者會向這些已選定的主題發送消息,這些消息包含了需要傳遞的信息或指令。? 消息代理作為核心中介,接收來自發布者的消息,并將其存儲在對應的主題中。同時,代理還會負責將這些消息分發給所有已訂閱該主題的訂閱者。

eb466f08-9264-11ef-b5cd-92fbcf53809c.png

發布-訂閱模式

舉例說明:
為了更具體地理解Pub/Sub系統的操作,我們可以考慮以下實際場景。設想在家中,你安裝了一系列IoT設備,這些設備負責監測煙霧濃度并控制電力與天然氣的供應。為了確保這些設備之間能夠順暢且可靠地通信,你可以采用MQTT代理作為消息傳遞的中心樞紐。在這個場景中,一旦煙霧檢測設備(作為發布者)偵測到煙霧并判定為警報狀態,它會立即向MQTT代理發送一條包含警報信息的消息。而你的智能手機(作為訂閱者之一)已經訂閱了相關的煙霧警報主題,因此會立即接收到這條消息,并通知你家中存在煙霧。值得注意的是,Pub/Sub模型的靈活性還體現在訂閱者也能轉變為發布者的能力上。例如,你的智能手機在接收到煙霧警報后,可以作為一個發布者,向另一個特定主題發送關閉電力和天然氣供應的指令消息。此時,負責控制電力和天然氣供應的IoT設備(作為訂閱者)會接收到這條指令,并據此執行關閉操作,以確保家庭安全。通過這樣的方式,即便只發送了一條消息,也能觸發兩個獨立的IoT設備同時做出響應,從而實現了高效的跨設備通信與協同工作。

Pub/Sub模型有哪些優勢?

Pub/Sub模式為表帶來了許多好處,如:

? 組件之間的松散耦合,使你的系統更加模塊化和靈活。

? 高可擴展性(理論上,Pub/Sub允許任意數量的發布者與任意數量的訂閱者通信)。

? 與語言和協議無關,這使得將Pub/Sub集成到你的技術堆棧中變得簡單快捷。

? 異步、事件驅動型通信,非常適合實時、低延遲的應用程序。

eb9a9f24-9264-11ef-b5cd-92fbcf53809c.png

何時應使用Pub/Sub模式?

Pub/Sub的松散耦合、異步特性和固有的可擴展性使其成為發布者和訂閱者數量較高且波動的分布式系統的絕佳解決方案。你可以將Pub/Sub用于許多不同的目的,例如:

? 發送事件通知

? 分布式緩存

? 分布式日志記錄

? 使用多個數據源

? 廣播更新(一對多消息傳送)

? 構建響應式、低延遲的最終用戶體驗,例如實時聊天和多人游戲協作功能

應用場景

①事件驅動架構:在微服務架構中,不同服務可以通過發布-訂閱模式來交換事件,實現松耦合的通信。例如,訂單服務可以發布“訂單創建”事件,庫存服務和支付服務可以訂閱該事件并相應地更新庫存和處理支付。②實時通知:在社交網絡應用中,用戶可以訂閱他們感興趣的話題或用戶,當有新的內容發布時,系統可以實時通知訂閱者。例如,微博、小紅書等社交媒體平臺使用發布-訂閱模式來推送新博文/筆記、評論和點贊通知等。③日志和監控:系統中的各個組件可以發布日志和監控數據,中央日志系統和監控系統可以訂閱這些數據,進行集中處理和分析。例如,ELK Stack(Elasticsearch, Logstash, Kibana)和Prometheus等工具可以利用發布-訂閱模式來收集和處理日志和監控數據。④物聯網:在物聯網應用中,設備可以發布傳感器數據,中央控制系統和其他設備可以訂閱這些數據,進行實時處理和響應(如前面所舉煙霧報警的例子)。

產品推薦

ebdb52b2-9264-11ef-b5cd-92fbcf53809c.png億佰特串口服務器產品涵蓋單串口服務器、多串口服務器、Wi-Fi串口服務器以及串口服務器模組等,可提供串口轉網絡功能,能夠將串口數據轉換成TCP/IP協議數據,實現串口與網絡的雙向透明傳輸。被廣泛應用于考勤系統、機房監控、電力監控等場景。

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

    關注

    1

    文章

    57

    瀏覽量

    10186
  • 模型
    +關注

    關注

    1

    文章

    3312

    瀏覽量

    49226
  • 分布式系統
    +關注

    關注

    0

    文章

    146

    瀏覽量

    19299
收藏 人收藏

    評論

    相關推薦

    為什么Xtr111輸出短路時沒有產生保護動作?

    =4.5V, Xtr 111沒有發生輸出開路時的保護動作,還保持正常工作狀態,這跟數據手冊描述的不一樣。 輸出短路兩分鐘以后兩分鐘以后解除短路,輸出線路串入300歐電阻, Xtr 111能正常工作。 為什么輸出短路時沒有產生保護動作?
    發表于 08-09 07:53

    使用OPA615進行峰值保持電路設計,輸出的保持信號在兩分鐘中內會有0.1V左右的衰減,為什么?

    采用如圖所示的保持電路,保持信號為1V 1Khz 15ns脈寬的單脈沖信號,在實際電路中發現,電路通電后,輸出的保持信號在兩分鐘中內會有0.1V左右的衰減,出現這樣的一個漸變的過程,之后電路輸出信號才會保持穩定。每次剛通電都會有這樣的現象出現,請問是什么原因造成的?
    發表于 08-13 07:15

    跪求單片機C程序,急需

    用51單片機編寫10分鐘倒計時,最后兩分鐘蜂鳴器提示,到時間蜂鳴器提醒,求求啦,急需{:4:}
    發表于 10-26 19:48

    急需單片機10分鐘倒計時C程序,急需,求求啦

    用51單片機編寫10分鐘倒計時,最后兩分鐘蜂鳴器提示,到時間蜂鳴器提醒,求求啦,急需
    發表于 10-26 19:56

    有誰做過51直流數控電源嗎?

    本帖最后由 14jxu 于 2015-8-19 23:09 編輯 我用7805 將15V穩壓成5V輸出給單片機、DA、AD、和數碼管,但是7805沒兩分鐘就受不了了,當我沒接數碼管的時候可以挺久點。我開始以為是國產芯片的問題,換成12V輸入7805,但7812也是兩分鐘
    發表于 08-19 23:07

    MQTT協議介紹之一:發布/訂閱

    ,MQTT被正式批準為OASIS標準。 MQTT 3.1.1現在是該協議的最新版本。發布/訂閱模式發布/訂閱
    發表于 08-25 19:58

    關于labview定時采集和取值問題

    利用9213板卡采集溫度,要求:1.每兩分鐘測量一次,2.測量五次,3.取平均值,備注:除過DAQ助手中的定時周期,因為板卡上有個通道是需要高速采集的,不能直接加定時來做這個。利用PLC來做的話
    發表于 03-15 17:10

    Redis的發布訂閱機制

    Redis之發布訂閱機制
    發表于 06-11 13:21

    單片機為什么要使用C語言呢?

    單片機為什么要使用C語言呢?創客學院兩分鐘帶你搞懂將C向MCU(俗稱單片機)8051上的移植始于80年代的中后期??陀^上講,C向8051 MCU移植的難點不少。如:8051的非馮·諾依慢結構(程序
    發表于 07-15 06:11

    ad7190連續轉換模式讀取一段時間的數據后出錯

    AD7190復位后,各個寄存器可以正常讀取,但連續采了一兩分鐘的ADC數據后又出現同樣的問題,請問各位大佬有沒有什么解決方法。
    發表于 09-18 11:37

    AD7190連續轉換模式采了一分鐘數據后出現異常怎么解決?

    AD7190復位后,各個寄存器可以正常讀取,但連續采了一兩分鐘的ADC數據后又出現同樣的問題,請問各位大佬有沒有什么解決方法。
    發表于 12-01 07:47

    兩分鐘帶你了解食材凈化機

    身邊很多熱愛美食的朋友面對廚房都有幾個恐懼:洗菜和洗碗,所幸的是,這個工作現在都可以交給機器來做了,它們就是食材凈化機和洗碗機。咱們今天就來聊聊食材凈化機。使用食材凈化機的理由有個,第一:一鍵
    發表于 01-16 16:14 ?1981次閱讀

    如何測試紫外線LED

      請等待一兩分鐘,并打開LED。最好不要在沒有護目鏡的情況下看著它們。
    的頭像 發表于 09-26 14:38 ?6948次閱讀
    如何測試紫外線LED

    摩托羅拉edge S開售兩分鐘銷量突破萬臺

    前不久摩托羅拉發布了自己的edge S手機,這款手機可以說是一鳴驚人,在發售的時候也拿到了很好的成績。根據摩托羅拉官方宣稱,摩托羅拉edge S手機在開售兩分鐘后隨即宣告售罄。這也是摩托羅拉進入國內市場以來取得的比較大的勝利。
    的頭像 發表于 02-05 11:39 ?3149次閱讀

    兩分鐘搞懂接地的機理和規范

    外殼PE與功能地Gnd二者怎么接?直連、完全斷開、跨個Y電容、跨個CY//R(1M)、只跨個R(1M),五種方案都是對的,不過是各有各的目的和用途。就好像家里來客,你遞上茶水、笤帚、拖鞋、名片、水果,包子,哪一種你都可能是對的,取決于客人的最核心需求是什么。 接地的核心知識點是3個:地電容特性、高頻接地、單點串并聯。 1)地電容特性 地,到底是個什么?別聽書上說的,全是云山霧罩,他們都是生怕你聽不迷糊。我簡單總結地就當個大電容的一個
    的頭像 發表于 01-28 16:11 ?102次閱讀
    <b class='flag-5'>兩分鐘</b><b class='flag-5'>搞懂</b>接地的機理和規范
    真人百家乐官网平台排行| 游艇会百家乐官网的玩法技巧和规则 | 大发888常见断续| 豪华百家乐人桌| 百家乐官网鞋| 做百家乐官网网上投注| 百家乐天下| 老虎机上分器| 百家乐揽子打法| 百家乐官网的玩法技巧和规则| 百家乐官网筹码素材| 大发888赌城| 可信百家乐的玩法技巧和规则| 博E百百家乐娱乐城| 互联网百家乐官网的玩法技巧和规则 | 百家乐能战胜吗| 百家乐官网无损打法| 冠军百家乐官网现金网| 大发888游戏代冲省钱技巧| 至尊百家乐赌场娱乐网规则 | 综合百家乐官网博彩论坛| 真人百家乐官网做假| 百家乐官网技术交流群| 百加乐牌| 最好的棋牌游戏| 永利高官网| 大发888娱乐平台| 免费百家乐倍投| 百家乐板路| 金宝博百家乐游戏| 百家乐官网园有限公司| 百家乐官网桌子租| 免费百家乐官网追号软件| 百家乐官网筹码皇冠| 24山向内什么山向最好| 沙龙百家乐官网赌场娱乐网规则| 赌神网百家乐官网的玩法技巧和规则| 深圳百家乐官网的玩法技巧和规则| 海立方百家乐官网的玩法技巧和规则 | 百家乐官网玩法说明| 饶阳县|