亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

消息隊列筆記

crossoverJie / 2597人閱讀

摘要:交換器和隊列是綁定的,用于消息隊列和交換器之間的關聯。會將消息發(fā)送到匹配的隊列中去使用號和號。參考資料消息隊列之什么是消息隊列淺談消息隊列及常見的消息中間件

一、定義

比較官方的說法是是指利用 高效可靠 的 消息傳遞機制 進行與平臺無關的 數據交流,并基于 數據通信 來進行分布式系統的集成。
我們可以理解為將要傳輸的數據放在一個隊列中。

二、為什么使用消息隊列

1、解耦
(1)發(fā)送者和接收者不必了解對方,只需要確認消息即可
比如在交易系統中,支付系統把支付結果放到消息中間件中,然后通知訂單系統修改支付狀態(tài),這一過程中支付系統和訂單系統是互不關心的,但是可以保證數據的最終一致

2、異步處理

![圖片上傳中...]

從圖中我們可以看見,A系統將消息發(fā)送到消息隊列后可以立即返回,然后去處理其他事情,而不用管BCD,讓他們自己去拿,這也就實現了異步處理。

3、流量削峰
這一點也很好理解,比如現在是用戶使用的高峰期,一秒鐘有3000條請求,但是只有兩臺服務器,每臺服務器最多只能處理1000條,那就會造成系統的崩潰,如果說再增加一個服務器,還不夠怎么沒辦,而且這樣會花費不少成本,因此如果用一個消息隊列,把所有請求都先放到里面,再讓服務器自己去拿,就不會造成擁堵了,這就是所謂“削峰”。

![圖片上傳中...]

4、廣播
使用消息隊列也可以很好的實現廣播,如果想要發(fā)送消息給好幾個用戶,那么如果每個都要發(fā)一遍非常浪費效率,但是將消息放在消息隊列中,讓用戶自己去取,就非常的高效。

三、使用消息隊列需要注意的問題

1、保證高可用性
在使用消息隊列的時候需要注意高可用性,最好使用分布式或者集群的消息隊列,以為只把消息隊列放在一臺服務器上,那如果服務器出了問題,整個系統都崩了。

2、防止數據丟失
其實使用消息隊列,最需要注意的就是保證數據不丟失,所以可能需要將數據進行備份等。

四、幾種常用的消息隊列技術

![圖片上傳中...]

五、常用消息隊列技術——rabbitmq

rabbitmq與基本的消息隊列模型不完全一樣,而是在它的基礎上增加了一個“exchange”。

![圖片上傳中...]

(1)在圖中我們可以看到,exchange(交換器)接受生產者的消息并將消息路由給隊列。
(2)交換器和隊列是Binding 綁定的,用于消息隊列和交換器之間的關聯。一個綁定就是基于路由鍵將交換器和消息隊列連接起來的路由規(guī)則,所以可以將交換器理解成一個由綁定構成的路由表。
(3)在每個消息的消息頭中都包含了路由鍵,交換器就根據路由鍵轉發(fā)消息到隊列中。
(4)exchange一般有以下4種類型:
direct:如果路由鍵和綁定鍵完全一致,就轉發(fā)到相應的隊列。
fanout:會將消息轉發(fā)到所有的隊列中去。
topic:會將消息發(fā)送到匹配的隊列中去(使用#號和*號)。
header:header不會匹配路由鍵,而是匹配請求頭,這種類型已經很少使用了。

參考資料:https://juejin.im/post/5a67f7... 消息隊列之RabbitMQ
https://juejin.im/post/5cb025... 什么是消息隊列
https://juejin.im/post/5b41fe... 淺談消息隊列及常見的消息中間件

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/75034.html

相關文章

  • RabbitMq 最全的性能調優(yōu)筆記

    摘要:性能調優(yōu)筆記避免雷區(qū)要避免流控機制觸發(fā)服務端默認配置是當內存使用達到,磁盤空閑空間小于,即啟動內存報警,磁盤報警報警后服務端觸發(fā)流控機制。最佳線程生產者使用多線程發(fā)送數據到三到五個線程性能發(fā)送最佳,超過它也不能提高生產的發(fā)送速率。 RabbitMq 性能調優(yōu)筆記 [TOC] 避免雷區(qū) 要避免流控機制觸發(fā) 服務端默認配置是當內存使用達到40%,磁盤空閑空間小于50M,即啟動內存報警,磁...

    Tony 評論0 收藏0
  • python socket筆記

    摘要:套接字是全雙工的。做兩件事將未鏈接的套接字轉換為被動套接字,指示內核接受對此套接字的連接請求制定了內核為此套接口排隊的最大連接個數對于指定的套接字,內核要維護未連接隊列和已連接隊列兩個隊列,完成三路握手的連接將從未連接隊列移至已連接隊列。 基礎 一個套接字由相關五元組構成,協議、本地地址、本地端口、遠程地址、遠程端口。套接字是全雙工的。 listen函數 只用于tcp,listen的原...

    everfly 評論0 收藏0
  • RabbitMQ學習筆記

    摘要:消息持久化控制的屬性就是消息的持久化。當生產者發(fā)送的消息路由鍵為時,兩個消費者都會收到消息并處理當生產者發(fā)送的消息路由鍵為時,只有消費者可以接收到消息。八的消息確認機制在中,可以通過持久化數據解決服務器異常的數據丟失問題。 一、內容大綱&使用場景 1. 消息隊列解決了什么問題? 異步處理 應用解耦 流量削鋒 日志處理 ...... 2. rabbitMQ安裝與配置 3. Java操...

    zacklee 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<