国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

消息隊(duì)列筆記

crossoverJie / 2551人閱讀

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

一、定義

比較官方的說法是是指利用 高效可靠 的 消息傳遞機(jī)制 進(jìn)行與平臺(tái)無關(guān)的 數(shù)據(jù)交流,并基于 數(shù)據(jù)通信 來進(jìn)行分布式系統(tǒng)的集成。
我們可以理解為將要傳輸?shù)臄?shù)據(jù)放在一個(gè)隊(duì)列中。

二、為什么使用消息隊(duì)列

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

2、異步處理

![圖片上傳中...]

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

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

![圖片上傳中...]

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

三、使用消息隊(duì)列需要注意的問題

1、保證高可用性
在使用消息隊(duì)列的時(shí)候需要注意高可用性,最好使用分布式或者集群的消息隊(duì)列,以為只把消息隊(duì)列放在一臺(tái)服務(wù)器上,那如果服務(wù)器出了問題,整個(gè)系統(tǒng)都崩了。

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

四、幾種常用的消息隊(duì)列技術(shù)

![圖片上傳中...]

五、常用消息隊(duì)列技術(shù)——rabbitmq

rabbitmq與基本的消息隊(duì)列模型不完全一樣,而是在它的基礎(chǔ)上增加了一個(gè)“exchange”。

![圖片上傳中...]

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/75034.html

相關(guān)文章

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

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

    Tony 評(píng)論0 收藏0
  • python socket筆記

    摘要:套接字是全雙工的。做兩件事將未鏈接的套接字轉(zhuǎn)換為被動(dòng)套接字,指示內(nèi)核接受對(duì)此套接字的連接請(qǐng)求制定了內(nèi)核為此套接口排隊(duì)的最大連接個(gè)數(shù)對(duì)于指定的套接字,內(nèi)核要維護(hù)未連接隊(duì)列和已連接隊(duì)列兩個(gè)隊(duì)列,完成三路握手的連接將從未連接隊(duì)列移至已連接隊(duì)列。 基礎(chǔ) 一個(gè)套接字由相關(guān)五元組構(gòu)成,協(xié)議、本地地址、本地端口、遠(yuǎn)程地址、遠(yuǎn)程端口。套接字是全雙工的。 listen函數(shù) 只用于tcp,listen的原...

    everfly 評(píng)論0 收藏0
  • RabbitMQ學(xué)習(xí)筆記

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

    zacklee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<