RabbitMQ學習系列三:.net 環境下 C#程式碼訂閱 RabbitMQ 訊息並處理

龐順龍發表於2019-05-11

上一篇已經講了Rabbitmq如何在Windows平臺安裝

不懂請移步: RabbitMQ學習系列二:.net 環境下 C#程式碼使用 RabbitMQ 訊息佇列

一、理論

.net環境下,C#程式碼訂閱RabbitMQ訊息佇列,本文用easynetq開源的.net Rabbitmq api來實現,EasyNetQ 是一個易於使用的RabbitMQ的.Net客戶端API,本文win服務基於topshelf實現,不懂請移步:windowsSevice程式和topshelf程式建立服務對比

二、專案搭建

1、此處省略topshelf服務搭建步驟

2、服務專案結構

3、結構簡要說明

NoticeProcess.cs 獲取訊息體後處理類

BusBuilder.cs 訊息伺服器聯結器

Installer.cs 訊息服務安裝實現類

ServiceMain.cs 訊息服務執行類

VaultService.cs C#訂閱訊息服務後的處理類,進行routingkey的約束等

Program.cs 程式啟動類

三、測試釋出和訂閱
1、釋出訊息(此處省略,具體實現參照第二篇文章)

2、C#訂閱服務啟動測試

3、C#服務除錯獲取訊息

可以看到這裡啟動後,獲取到了1步驟當中的訊息routingkey

4、c#處理程式碼

如果佇列有其他的pcm.notice.xxxxx訊息,同樣會被c#服務獲取到,都是基於pcm.notice.#這樣的#完全匹配原則。

這樣基本簡單的c#訂閱Rabbitmq訊息,獲取資訊就完成了。

問題整理:

如果C#讀取的Rabbitmq中message訊息實體和你c#程式中的不一樣,會報錯如下:

EasyNetQ.EasyNetQInvalidMessageTypeExcepion:Message type is incorrect.Expected 'RabbitMQ_Message:RabbitMQ',but was ''

龐順龍最後編輯於:4年前

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章