iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
0
自我挑戰組

Re : 從懶開始的自動化生活系列 第 29

[D29] : 一個Queue+Docker在Local的實作(3/4)

前面說過Passer如何把請求發到MQ去
今天講Center怎麼去找MQ把請求取出來。

Center

Center 扮演一個訊息處理的角色,Passer會不斷打大量Request上MQ,Center則是會不斷的跟MQ索取事情來做,做完後會通知MQ完成,MQ會刪除該筆Request。

我們一樣建立一個MessageService連線,方式如同前面的Passer。

然後我們使用RabbitMQ中的/BasicGet/框架。
BasicGet框架是由服務端主動去向MQ索取Task來做。

此外另一種是/EventingBasicConsumer/框架。
/EventingBasicConsumer/則是服務端去向MQ訂閱,之後MQ收到新的資訊都會一並推播給服務端。

一樣要存取MQ,所以這個專案同樣執行

dotnet add package RabbitMQ.Client

測試

使用前面提到過的指令
::brew services start rabbitmq::

dotnet run

依序啟動MQService -> Passer -> Center

啟動後你會看到因為先開了Passer所以MQ的訊息累積紅線攀升
接著開了Center,瞬間處理掉大量請求,因此出現一條紫線,並在啟動的時間點飆高,因為處理太快XD,屆時紅線累積量也降低。
黃現在這邊則不太明顯。

至於為什麼後面又起一個紅線小波段是因為我發現我Code寫錯Center Service Down了一下QAQ。

目前為止我們已經確認Passer -> MQ <- Center之間的溝通是沒問題的了。


上一篇
[D28] : 一個Queue+Docker在Local的實作(2/4)
下一篇
[D30] : 一個Queue+Docker在Local的實作(4/4)
系列文
Re : 從懶開始的自動化生活30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言