bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

什么是消息隊列,你知道我們為什么需要它嗎?


一、什么是消息隊列?
    在百度百科中,消息隊列是這么解釋的:“消息隊列”是在消息的傳輸過程中保存消息的容器。
     消息隊列全稱為英文Message Queue簡稱(MQ)是一種應用程序對應用程序的通信方法。MQ是消費-生產者模型的一個典型的代表,一端往消息隊列中不斷寫入消息,而另一端則可以取隊列中的消息。消息發布者(生產者)只管把消息發布到MQ中而不用管誰來取,消息使用者(消費方)只管從MQ中取消息而不用管是誰發布的。
二、為什么使用消息隊列?
   使用消息隊列主要有兩點好處:1.通過異步處理提高系統性能(削峰、減少響應所需時間);2.降低系統耦合性。
(1) 通過異步處理提高系統性能(削峰、減少響應所需時間)
在不使用消息隊列的時候,用戶的請求數據直接寫入數據庫,在高并發的情況下數據庫壓力劇增,使得響應速度變慢。但是在使用消息隊列之后,用戶的請求數據發送給消息隊列之后立即 返回,再由消息隊列的消費者進程從消息隊列中獲取數據,異步寫入數據庫。由于消息隊列服務器處理速度快于數據庫(消息隊列也比數據庫有更好的伸縮性),因此響應速度得到大幅改善。
通過以上分析我們可以得出消息隊列具有很好的削峰作用的功能——即通過異步處理,將短時間高并發產生的事務消息存儲在消息隊列中,從而削平高峰期的并發事務。 舉例:在電子商務一些秒殺、促銷活動中,合理使用消息隊列可以有效抵御促銷活動剛開始大量訂單涌入對系統的沖擊。
因為用戶請求數據寫入消息隊列之后就立即返回給用戶了,但是請求數據在后續的業務校驗、寫數據庫等操作中可能失敗。因此使用消息隊列進行異步處理之后,需要適當修改業務流程進行配合,比如用戶在提交訂單之后,訂單數據寫入消息隊列,不能立即返回用戶訂單提交成功,需要在消息隊列的訂單消費者進程真正處理完該訂單之后,甚至出庫后,再通過電子郵件或短信通知用戶訂單成功,以免交易糾紛。這就類似我們平時手機訂火車票和電影票。
(2) 降低系統耦合性
我們知道如果模塊之間不存在直接調用,那么新增模塊或者修改模塊就對其他模塊影響較小,這樣系統的可擴展性無疑更好一些。
我們最常見的事件驅動架構類似生產者消費者模式,在大型網站中通常用利用消息隊列實現事件驅動結構。
消息隊列使利用發布-訂閱模式工作,消息發送者(生產者)發布消息,一個或多個消息接受者(消費者)訂閱消息。 從上圖可以看到消息發送者(生產者)和消息接受者(消費者)之間沒有直接耦合,消息發送者將消息發送至分布式消息隊列即結束對消息的處理,消息接受者從分布式消息隊列獲取該消息后進行后續處理,并不需要知道該消息從何而來。對新增業務,只要對該類消息感興趣,即可訂閱該消息,對原有系統和業務沒有任何影響,從而實現網站業務的可擴展性設計。
消息接受者對消息進行過濾、處理、包裝后,構造成一個新的消息類型,將消息繼續發送出去,等待其他消息接受者訂閱該消息。因此基于事件(消息對象)驅動的業務架構可以是一系列流程。
另外為了避免消息隊列服務器宕機造成消息丟失,會將成功發送到消息隊列的消息存儲在消息生產者服務器上,等消息真正被消費者服務器處理后才刪除消息。在消息隊列服務器宕機后,生產者服務器會選擇分布式消息隊列服務器集群中的其他服務器發布消息。


涇川網站制作公司哪家好,找創新互聯!從網頁設計、網站建設、微信開發、APP開發、響應式網站建設等網站項目制作,到程序開發,運營維護。創新互聯公司2013年成立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯。

為用戶提供快速創建、方便管理的消息中間件。http://vcdvsql.cn/

當前標題:什么是消息隊列,你知道我們為什么需要它嗎?
網頁鏈接:http://vcdvsql.cn/article44/ssdhe.html

成都網站建設公司_創新互聯,為您提供企業建站App設計網站維護網站設計公司服務器托管Google

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作