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

當前位置:首頁 > 科技  > 軟件

面試官:消息隊列的應用場景有哪些?

來源: 責編: 時間:2024-05-29 17:26:13 147觀看
導讀通常來說,使用消息隊列主要能為我們的系統帶來下面三點好處:異步處理削峰/限流降低系統耦合性除了這三點之外,消息隊列還有其他的一些應用場景,例如實現分布式事務、順序保證和數據流處理。如果在面試的時候你被面試官問

通常來說,使用消息隊列主要能為我們的系統帶來下面三點好處:GiD28資訊網——每日最新資訊28at.com

  1. 異步處理
  2. 削峰/限流
  3. 降低系統耦合性

除了這三點之外,消息隊列還有其他的一些應用場景,例如實現分布式事務、順序保證和數據流處理。GiD28資訊網——每日最新資訊28at.com

如果在面試的時候你被面試官問到這個問題的話,一般情況是你在你的簡歷上涉及到消息隊列這方面的內容,這個時候推薦你結合你自己的項目來回答。GiD28資訊網——每日最新資訊28at.com

異步處理

通過異步處理提高系統性能通過異步處理提高系統性能GiD28資訊網——每日最新資訊28at.com

將用戶請求中包含的耗時操作,通過消息隊列實現異步處理,將對應的消息發送到消息隊列之后就立即返回結果,減少響應時間,提高用戶體驗。隨后,系統再對消息進行消費。GiD28資訊網——每日最新資訊28at.com

因為用戶請求數據寫入消息隊列之后就立即返回給用戶了,但是請求數據在后續的業務校驗、寫數據庫等操作中可能失敗。因此,使用消息隊列進行異步處理之后,需要適當修改業務流程進行配合,比如用戶在提交訂單之后,訂單數據寫入消息隊列,不能立即返回用戶訂單提交成功,需要在消息隊列的訂單消費者進程真正處理完該訂單之后,甚至出庫后,再通過電子郵件或短信通知用戶訂單成功,以免交易糾紛。這就類似我們平時手機訂火車票和電影票。GiD28資訊網——每日最新資訊28at.com

削峰/限流

先將短時間高并發產生的事務消息存儲在消息隊列中,然后后端服務再慢慢根據自己的能力去消費這些消息,這樣就避免直接把后端服務打垮掉。GiD28資訊網——每日最新資訊28at.com

舉例:在電子商務一些秒殺、促銷活動中,合理使用消息隊列可以有效抵御促銷活動剛開始大量訂單涌入對系統的沖擊。如下圖所示:GiD28資訊網——每日最新資訊28at.com

削峰削峰GiD28資訊網——每日最新資訊28at.com

降低系統耦合性

使用消息隊列還可以降低系統耦合性。我們知道如果模塊之間不存在直接調用,那么新增模塊或者修改模塊就對其他模塊影響較小,這樣系統的可擴展性無疑更好一些。GiD28資訊網——每日最新資訊28at.com

生產者(客戶端)發送消息到消息隊列中去,消費者(服務端)處理消息,需要消費的系統直接去消息隊列取消息進行消費即可而不需要和其他系統有耦合,這顯然也提高了系統的擴展性。GiD28資訊網——每日最新資訊28at.com

發布/訂閱(Pub/Sub)模型發布/訂閱(Pub/Sub)模型GiD28資訊網——每日最新資訊28at.com

消息隊列使用發布-訂閱模式工作,消息發送者(生產者)發布消息,一個或多個消息接受者(消費者)訂閱消息。 從上圖可以看到消息發送者(生產者)和消息接受者(消費者)之間沒有直接耦合,消息發送者將消息發送至分布式消息隊列即結束對消息的處理,消息接受者從分布式消息隊列獲取該消息后進行后續處理,并不需要知道該消息從何而來。對新增業務,只要對該類消息感興趣,即可訂閱該消息,對原有系統和業務沒有任何影響,從而實現網站業務的可擴展性設計。GiD28資訊網——每日最新資訊28at.com

例如,我們商城系統分為用戶、訂單、財務、倉儲、消息通知、物流、風控等多個服務。用戶在完成下單后,需要調用財務(扣款)、倉儲(庫存管理)、物流(發貨)、消息通知(通知用戶發貨)、風控(風險評估)等服務。使用消息隊列后,下單操作和后續的扣款、發貨、通知等操作就解耦了,下單完成發送一個消息到消息隊列,需要用到的地方去訂閱這個消息進行消息即可。GiD28資訊網——每日最新資訊28at.com

圖片圖片GiD28資訊網——每日最新資訊28at.com

另外,為了避免消息隊列服務器宕機造成消息丟失,會將成功發送到消息隊列的消息存儲在消息生產者服務器上,等消息真正被消費者服務器處理后才刪除消息。在消息隊列服務器宕機后,生產者服務器會選擇分布式消息隊列服務器集群中的其他服務器發布消息。GiD28資訊網——每日最新資訊28at.com

備注: 不要認為消息隊列只能利用發布-訂閱模式工作,只不過在解耦這個特定業務環境下是使用發布-訂閱模式的。除了發布-訂閱模式,還有點對點訂閱模式(一個消息只有一個消費者),我們比較常用的是發布-訂閱模式。另外,這兩種消息模型是 JMS 提供的,AMQP 協議還提供了另外 5 種消息模型。GiD28資訊網——每日最新資訊28at.com

實現分布式事務

分布式事務的解決方案之一就是 MQ 事務。GiD28資訊網——每日最新資訊28at.com

RocketMQ、 Kafka、Pulsar、QMQ 都提供了事務相關的功能。事務允許事件流應用將消費,處理,生產消息整個過程定義為一個原子操作。GiD28資訊網——每日最新資訊28at.com

RocketMQ 事務消息原理如下圖所示:GiD28資訊網——每日最新資訊28at.com

圖片圖片GiD28資訊網——每日最新資訊28at.com

順序保證

在很多應用場景中,處理數據的順序至關重要。消息隊列保證數據按照特定的順序被處理,適用于那些對數據順序有嚴格要求的場景。大部分消息隊列,例如 RocketMQ、RabbitMQ、Pulsar、Kafka,都支持順序消息。GiD28資訊網——每日最新資訊28at.com

延時/定時處理

消息發送后不會立即被消費,而是指定一個時間,到時間后再消費。大部分消息隊列,例如 RocketMQ、RabbitMQ、Pulsar、Kafka,都支持定時/延時消息。GiD28資訊網——每日最新資訊28at.com

圖片圖片GiD28資訊網——每日最新資訊28at.com


GiD28資訊網——每日最新資訊28at.com

數據流處理

針對分布式系統產生的海量數據流,如業務日志、監控數據、用戶行為等,消息隊列可以實時或批量收集這些數據,并將其導入到大數據處理引擎中,實現高效的數據流管理和處理。GiD28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-91512-0.html面試官:消息隊列的應用場景有哪些?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 618 限時優惠升級 國貨精品攀升電腦爆款超值購入

下一篇: C# 中的 this 關鍵字及其三種用法

標簽:
  • 熱門焦點
  • 2023年Q2用戶偏好榜:12+256G版本成新主流

    3月份的性能榜、性價比榜和好評榜之后,就要輪到2023年的第二季度偏好榜了,上半年的新機潮已經過去,最明顯的肯定就是大內存和存儲的機型了,另外部分中端機也取消了屏幕塑料支架
  • 6月iOS設備性能榜:M2穩居榜首 A系列只能等一手3nm來救

    沒有新品發布,自然iOS設備性能榜的上榜設備就沒有什么更替,僅僅只有跑分變化而產生的排名變動,畢竟蘋果新品的發布節奏就是這樣的,一年下來也就幾個移動端新品,不會像安卓廠商,一
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數據的地方,是數據源的一種,比如大家經常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數據,它既可以保
  • 一文搞定Java NIO,以及各種奇葩流

    大家好,我是哪吒。很多朋友問我,如何才能學好IO流,對各種流的概念,云里霧里的,不求甚解。用到的時候,現百度,功能雖然實現了,但是為什么用這個?不知道。更別說效率問題了~下次再遇到,
  • 重估百度丨“晚熟”的百度云,能等到春天嗎?

    ©自象限原創作者|程心排版|王喻可2016年7月13日,百度云計算戰略發布會在北京舉行,宣告著百度智能云的正式啟程。彼時的會場座無虛席,甚至排隊排到了門外,在場的所有人幾乎都
  • 品牌洞察丨服務本地,美團直播成效幾何?

    來源:17PR7月11日,美團App首頁推薦位出現“美團直播”的固定入口。在直播聚合頁面,外賣“神槍手”直播間、美團旅行直播間、美團買菜直播間等均已上線,同時
  • 網紅炒股不為了賺錢,那就是耍流氓!

    來源:首席商業評論6月26日高調宣布入市,網絡名嘴大v胡錫進居然進軍了股市。在一次財經媒體峰會上,幾個財經圈媒體大佬就“胡錫進炒股是否知道認真報道”展開討論。有
  • onebot M24巧系列一體機采用輕薄機身設計,現已在各平臺開售

    onebot M24 巧系列一體機目前已在線上線下各平臺同步開售。onebot M24 巧系列采用一體化輕薄機身設計,最薄處為 10.15mm,擁有寶石紅、午夜藍、石墨綠、雅致
  • AI藝術欣賞體驗會在上海梅賽德斯奔馳中心音樂俱樂部上演

    光影交錯的鏡像世界,虛實幻化的視覺奇觀,虛擬偶像與真人共同主持,這些場景都出現在2019世界人工智能大會的舞臺上。8月29日至31日,“AI藝術欣賞體驗會”在上海
Top 主站蜘蛛池模板: 涿州市| 东宁县| 石景山区| 赞皇县| 涟源市| 镇巴县| 贡山| 东阿县| 鄂州市| 江山市| 原阳县| 离岛区| 南宁市| 新乐市| 龙泉市| 施甸县| 宁河县| 昌平区| 克什克腾旗| 竹溪县| 黄冈市| 理塘县| 洛扎县| 那曲县| 遵化市| 永善县| 莱芜市| 武川县| 社会| 宜兰市| 盐山县| 安多县| 永安市| 铜山县| 平谷区| 桦川县| 仁怀市| 长岛县| 福海县| 光泽县| 兴海县|