.Net Core應用RabbitMQ,及簡單封裝


首先,還是萬分感謝大家能夠抽空來閱讀我的文章,萬分感謝。今天我帶來的是.Net Core中應用RabbitMQ,和簡單封裝。因為昨天的文章里說了今天要寫,所以今天一定要寫出來。小編翻閱了很多資料,想要設計些一個能滿足自己需求,也方便擴展,同時保證安全的簡單封裝。之中翻到一篇很經典的文章,如果你使用RabbitMQ只是為了處理高並發,讓消息可以異步處理的話,可以使用下面這個鏈接。因小編現在做的都是為了自己的分布式架構服務,中間需要實現實時通訊,這個並不是很適合小編。所以小編自己封裝了一個,但是大家也可以參考。https://mp.weixin.qq.com/s/Hj5R09StmMgRiCDnf-zLVw小編下面會直接貼圖,代碼會附在源碼上,如不了解RabbitMQ的基本使用方式可以另行查找。首先編寫一個RabbitMQHelper,我們在構造函數里創建連接工廠,連接,通道,交換機。建議寫進配置文件里,便於后期維護。

然后我們用泛型的方式來編寫SendMsg方法,泛型的好處這里不多說了

接着是Receive方法,這里我沒有使用泛型,是返回出去的直接是字符串,為了適應不同的業務場景,可以自定義序列化。

這里使用了委托的方式,是為了將業務和Helper類分開,便於支持其他業務。

細心的同志們會發現,構造函數里設置了交換機名,函數里設置了隊列名,這樣的設計是為了編寫下面的MQHelperFactory。在這里我們可以自定義各個交換機,也方便調用,而且可以掩飾我們用的是RabbitMQ,降低后期更換其他MQ中間件對開發的影響。

然后,我們就編寫完了,實際調用只有一行代碼,接受消息也是使用了委托的方式,分離的很好。如果擔心每次創建會影響效率,那么可以使用單例模式,或者IOC使配合單例模式使用。這里就不一一介紹,請大家根據自己的業務場景設計。

源碼地址:
https://github.com/SkylerSkr/RabbitMQHelper


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM