RabbitMQ的幾種工作模式和優化建議

2021-10-07 14:01:43 字數 2101 閱讀 1650

1.broker:它提供一種傳輸服務,它的角色就是維護一條從生產者到消費者的路線,保證資料能按照指定的方式進行傳輸,

2. exchange:訊息交換機,它指定訊息按什麼規則,路由到哪個佇列。

3. queue:訊息的載體,每個訊息都會被投到乙個或多個佇列。

4. binding:繫結,它的作用就是把exchange和queue按照路由規則繫結起來.

5. routing key:路由關鍵字,exchange根據這個關鍵字進行訊息投遞。

6. vhost:虛擬主機,乙個broker裡可以有多個vhost,用作不同使用者的許可權分離。

7. producer:訊息生產者,就是投遞訊息的程式.

8. consumer:訊息消費者,就是接受訊息的程式.

9. channel:訊息通道,在客戶端的每個連線裡,可建立多個channel.

一.如何傳送訊息

1.生產者和broker建立tcp連線

2.生產者和broker建立通道

3.生產者通過通道訊息傳送給broker,由exchange將訊息進行**

4.exchange將訊息**到止跌那個的queue(佇列)

二.如何接收訊息

1.消費者和broker建立tcp連線

2.消費者和broker建立通道

3.消費者監聽制定的queue(佇列)

4.當有訊息到達queue時broker預設將訊息推送給消費者

5.消費者接受到訊息

topic**資訊主要是依據萬用字元,佇列和交換機的繫結主要是依據一種模式(萬用字元+字串),而當傳送訊息的時候,只有指定的key和該模式相匹配的時候,訊息才會被傳送到該訊息佇列中.萬用字元:* 表示乙個詞,# 表示零個或多個詞

1、加大伺服器頻寬

訪問量大時,較長的資料容易將頻寬佔滿。如伺服器上傳頻寬為10m,則實際上傳頻寬可認為1m,每秒上傳量為1m/1k=1k。如果把頻寬加到100m,則每秒上傳量為10k。一般情況下,rabbitmq伺服器能夠接受的每秒寫入量為20k-50k(8g記憶體),因此在頻寬在不足200m的時候,加大頻寬會產生很明顯的提公升作用,再往上效果就可能不那麼明顯了。

2、加大記憶體

rabbitmq的機制是先將訊息放在記憶體中,然後分批寫入硬碟。小批量資料的寫入基本上都放在記憶體中,記憶體資料量過大時會一邊把客戶端的資料往記憶體裡寫,一邊將記憶體裡的陳舊資料往硬碟裡寫,這樣會對速度造成較嚴重的損耗。適度的增加記憶體,佇列將會更多的訊息放在記憶體中,增加系統的處理速度。

3、使用固態硬碟

機械硬碟的寫入速度較慢,處理大量資料時機械硬碟對效能的損耗十分嚴重。如果要存放1億條資料,所需要的硬碟大小為100g,建議採用100-500g固態硬碟。再加上消費端在不斷的處理資料,一般待處理的訊息能夠達到千萬級別已經相當不容易了

4、增加生產者

伺服器可以建立多個連線,單個生產者往往不能充分利用伺服器的潛能,建立多個生產者之後,伺服器處理能力將會得到充分利用。一般情況下,乙個生產者每秒可以傳入1000-5000條訊息,在1-10這個範圍內,每增加乙個生產者,處理速度就會相對單生產者增加一倍

5、增加消費者

消費者增多時,出隊速度有明顯改善。該方案對於出隊速度的影響有限,1-10個程序範圍內,相對於單程序只有一倍左右的提公升,建議執行緒開2-5個即可,再多可能影響不大。出現該現象的原因可能是伺服器頻寬或硬體處理能力有限,消費者增加了也沒什麼用處。因為沒有實際環境測試,此條只列為建議,採用前可以多做實驗

6、改網路訪問為本地訪問

該方案在消費端/生產端與rabbitmq伺服器部署在同一臺電腦時有用,因為省略了網路傳輸,大大節省了處理時間。如果消費端/生產端與rabbitmq伺服器分開部署,該方案就不能使用了。在**中將ip位址127.0.0.1改為localhost即可

RabbitMQ入門及其幾種工作模式

mq全程message queue,用於應用程式和應用程式間進行通訊。rabbitmq採用erlang編寫,實現了amqp 高階訊息佇列 協議,跨平台,支援各種主流的作業系統和多種客戶端。rabbitmq相比其他同型別的訊息佇列,最大的特點在保證可觀的單機吞吐量的同時,延時方面非常出色。broker...

RabbitMQ的工作模式?

rabbitmq的工作模式?五種 簡單模式 乙個生產者,乙個消費者。生產者生產訊息,將訊息傳送到訊息佇列中,消費者從訊息佇列中獲取訊息並消費 work模式 資源競爭 乙個生產者,多個消費者 生產者生產訊息,將訊息傳送到訊息佇列中,多個消費者同時爭搶訊息,只有搶到的 消費者才能消費訊息 訂閱模式 共享...

RabbitMQ工作模式

rabbitmq工作模式有六種 工作佇列模式,發布訂閱模式,路由模式,萬用字元模式,header模式和rpc模式。1.工作佇列模式 2.發布訂閱模式 交換機型別為funout。3.路由模式 交換機型別為direct。路由模式和發布訂閱模式區別 1 發布訂閱模式不需要繫結routingkey,訊息傳送...