欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

初識RabbitMQ-創(chuàng)新互聯(lián)

首先來聊一聊什么是消息中間件,以及消息中間件能幫助我們解決什么問題。 消息中間件是基于隊列與消息傳遞技術(shù),在網(wǎng)絡(luò)環(huán)境中為應用系統(tǒng)提供同步或異步、可靠的消息傳輸?shù)闹涡攒浖到y(tǒng),簡單來說,消息中間件能夠為我們的系統(tǒng)提供異步處理能力。 舉個例子,某個系統(tǒng)在使用之前需要用戶進行注冊,用戶在完成注冊后需要發(fā)送短信和郵件提醒用戶注冊成功,如果按照同步的流程走,它應該是這樣的:

憑借整站使用H5高端網(wǎng)站建設(shè)的創(chuàng)新體驗、定制設(shè)計、設(shè)計團隊積累與透明式的服務(wù)過程,符合行業(yè)特點,專屬顧問根據(jù)企業(yè)產(chǎn)品,消費群體屬性,準確定位;設(shè)計師以目標客戶為中心,以突出品牌官網(wǎng)特性為宗旨,定制專屬網(wǎng)站建設(shè)設(shè)計方案。

但這樣有一個問題,當用戶注冊成功后,我們需要等待系統(tǒng)發(fā)送完短信和郵件后再讓用戶執(zhí)行下一個流程嗎?其實是不需要的,用戶注冊成功后完全可以讓其直接進入下一個流程,而發(fā)送短信和發(fā)送郵件的操作可以進行異步處理:

將這兩個操作分為兩個異步任務(wù)去執(zhí)行,雖然提高了整體的執(zhí)行效率,但用戶仍然要等待兩個操作中耗時最長的那個操作結(jié)束,因此,我們可以引入消息中間件:

此時用戶只需要等待系統(tǒng)將消息放入消息中間件,至于發(fā)送短信和郵件,將由消息中間件自動完成,這樣將大大提高注冊的效率,提升用戶體驗。 消息中間件的功能遠不止如此,它還能夠?qū)崿F(xiàn)應用解耦,舉個例子,某電商系統(tǒng)在用戶提交了一份訂單后,訂單服務(wù)會調(diào)用庫存服務(wù)提供的接口進行減庫存的操作,如下所示:

那么這兩個服務(wù)就存在著耦合性,當庫存服務(wù)的接口發(fā)生了變化,則訂單服務(wù)就必須立馬修改代碼,否則程序都不能正常運行了,若想解決這個問題,就可以在服務(wù)中間加一個消息中間件,訂單服務(wù)只需將消息寫入中間件,并由庫存服務(wù)去訂閱這個消息即可,如下所示:

消息中間件還能夠用來實現(xiàn)流量控制,比如非常熟悉的秒殺業(yè)務(wù),當秒殺活動開始時的流量是非常巨大的,為了防止大量的請求直接壓垮系統(tǒng),可以將它們按順序?qū)懭胂㈥犃?,再由系統(tǒng)慢慢地去獲取請求進行處理:

什么是RabbitMQ?為什么使用RabbitMQ?

采用AMQP高級消息隊列協(xié)議的一種消息隊列技術(shù),大的特點就是消費并不需要確保提供方存在,實現(xiàn)了服務(wù)之間的高度解耦

可以用它來:解耦、異步、削峰。

為什么要使用rabbitmq?

在分布式系統(tǒng)下具備異步,削峰,負載均衡等一系列高級功能

擁有持久化的機制,進程消息,隊列中的信息也可以保存下來

實現(xiàn)消費者和生產(chǎn)者之間的解耦

對于高并發(fā)場景下,利用消息隊列可以使得同步訪問變?yōu)榇性L問達到一定量的限流,利于數(shù)據(jù)庫的操作

可以使用消息隊列達到異步下單的效果,排隊中,后臺進行邏輯下單

使用rabbitmq的場景

服務(wù)間異步通信

順序消費

定時任務(wù)

請求削峰

組件介紹

  1. Broker:它提供一種傳輸服務(wù),它的角色就是維護一條從生產(chǎn)者到消費者的路線,保證數(shù)據(jù)能按照指定的方式進行傳輸,

  1. Exchange:消息交換機,它指定消息按什么規(guī)則,路由到哪個隊列。

  1. Queue:消息的載體,每個消息都會被投到一個或多個隊列。

  1. Binding:綁定,它的作用就是把exchange和queue按照路由規(guī)則綁定起來.

  1. Routing Key:路由關(guān)鍵字,exchange根據(jù)這個關(guān)鍵字進行消息投遞。

  1. vhost:虛擬主機,一個broker里可以有多個vhost,用作不同用戶的權(quán)限分離。

  1. Producer:消息生產(chǎn)者,就是投遞消息的程序.

  1. Consumer:消息消費者,就是接受消息的程序.

  1. Channel:消息通道,在客戶端的每個連接里,可建立多個channel.

消息發(fā)布和接收流程

如何發(fā)送消息

  1. 生產(chǎn)者和Broker建立TCP連接

  1. 生產(chǎn)者和Broker建立通道

  1. 生產(chǎn)者通過通道消息發(fā)送給Broker,由Exchange將消息進行轉(zhuǎn)發(fā)

  1. Exchange將消息轉(zhuǎn)發(fā)到止跌那個的Queue(隊列)

如何接收消息

  1. 消費者和Broker建立TCP連接

  1. 消費者和Broker建立通道

  1. 消費者監(jiān)聽制定的Queue(隊列)

  1. 當有消息到達Queue時Broker默認將消息推送給消費者

  1. 消費者接受到消

七種模式介紹與應用場景

1.簡單模式

做最簡單的事情,一個生產(chǎn)者對應一個消費者,RabbitMQ相當于一個消息代理,負責將A的消息轉(zhuǎn)發(fā)給B 。

應用場景: 將發(fā)送的電子郵件放到消息隊列,然后郵件服務(wù)在隊列中獲取郵件并發(fā)送給收件人

2.工作隊列模式

在多個消費者之間分配任務(wù)(競爭的消費者模式),一個生產(chǎn)者對應多個消費者,一般適用于執(zhí)行資源密集型任務(wù),單個消費者處理不過來,需要多個消費者進行處理 應用場景: 一個訂單的處理需要10s,有多個訂單可以同時放到消息隊列,然后讓多個消費者同時處理,這樣就是并行了,而不是單個消費者的串行情況

3.訂閱模式

一次向許多消費者發(fā)送消息,一個生產(chǎn)者發(fā)送的消息會被多個消費者獲取,也就是將消息將廣播到所有的消費者中。

應用場景: 更新商品庫存后需要通知多個緩存和多個數(shù)據(jù)庫,這里的結(jié)構(gòu)應該是:

  • 一個fanout類型交換機扇出兩個個消息隊列,分別為緩存消息隊列、數(shù)據(jù)庫消息隊列

  • 一個緩存消息隊列對應著多個緩存消費者

  • 一個數(shù)據(jù)庫消息隊列對應著多個數(shù)據(jù)庫消費者

4.路由模式

有選擇地(Routing key)接收消息,發(fā)送消息到交換機并且要指定路由key ,消費者將隊列綁定到交換機時需要指定路由key,僅消費指定路由key的消息

應用場景: 如在商品庫存中增加了1臺iphone12,iphone12促銷活動消費者指定routing key為iphone12,只有此促銷活動會接收到消息,其它促銷活動不關(guān)心也不會消費此routing key的消息

5.主題模式

根據(jù)主題(Topics)來接收消息,將路由key和某模式進行匹配,此時隊列需要綁定在一個模式上,#匹配一個詞或多個詞,*只匹配一個詞。

應用場景: 同上,iphone促銷活動可以接收主題為iphone的消息,如iphone12、iphone13等

6.遠程過程調(diào)用

如果我們需要在遠程計算機上運行功能并等待結(jié)果就可以使用RPC,具體流程可以看圖。應用場景:需要等待接口返回數(shù)據(jù),如訂單支付 7.發(fā)布者確認

與發(fā)布者進行可靠的發(fā)布確認,發(fā)布者確認是RabbitMQ擴展,可以實現(xiàn)可靠的發(fā)布。在通道上啟用發(fā)布者確認后,RabbitMQ將異步確認發(fā)送者發(fā)布的消息,這意味著它們已在服務(wù)器端處理。(搜索公眾號Java知音,回復“2021”,送你一份Java面試題寶典)

應用場景: 對于消息可靠性要求較高,比如錢包扣款

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當前題目:初識RabbitMQ-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://chinadenli.net/article32/dgpipc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、定制開發(fā)、做網(wǎng)站、服務(wù)器托管、App開發(fā)、網(wǎng)站維護

廣告

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

搜索引擎優(yōu)化