前面說過Passer如何把請求發到MQ去
今天講Center怎麼去找MQ把請求取出來。
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之間的溝通是沒問題的了。