PowerDotNet平臺化軟件架構設計與實現系列(09):消息平臺

消息隊列已經幾乎成爲大中型高吞吐應用的標配,繼續根據我們一貫的節約代碼的風格,爲了複用的目標,抽象出消息隊列平臺,進行消息隊列管理。

環境準備

1、(必須).Net Framework4.5+

2、(必須)關係型數據庫MySQL或SqlServer或PostgreSQL或MariaDB四選一

3、(必須)PowerDotNet數據庫管理平臺,主要使用DBKey功能

4、(必須)PowerDotNet配置中心Power.ConfigCenter

5、(必須)PowerDotNet註冊中心Power.RegistryCenter

6、(必須)PowerDotNet緩存平臺Power.Cache

7、(必須)PowerDotNet基礎數據平臺Power.BaseData

8、(必須)PowerDotNet人員管理平臺Power.HCRM,後續文章詳細介紹

9、(必須)RabbitMQ

一、消息隊列

PowerDotNet默認支持的消息隊列是RabbitMQ和MSMQ(本文重點講講RabbitMQ),並可以繼續抽象,預留擴展接口,後續可以支持更多種消息隊列,比如RocketMQ、ZeroMQ、Kafka等。

1、消息隊列服務器

PowerDotNet重點支持RabbitMQ,精心開發了RabbitMQ消息隊列管理後臺,支持常用統計和連接、通道、交換機、隊列、RoutingKey綁定和用戶相關的常用操作。

消息隊列默認就支持集羣高可用部署,推薦使用鏡像模式。

公共隊列工具可以方便大家快速排查定位問題。

3、消息隊列分組

和緩存非常類似,對於大中型企業來說,消息隊列也經常需要按照業務團隊進行分組管理。

PowerDotNet完美支持按照系統和應用進行MQKey綁定,做到按組管理。

先定義MQKey,一個MQKey等同於一個消息隊列分組:

綁定MQKey到具體應用:

和緩存平臺一樣,只用使用公共消息隊列組件Power.MQ,直接在管理後臺點點按鈕,配置中心配置一下應用所使用的MQKey,應用就自動擁有了使用消息隊列的能力,開發應用不要太容易,咩哈哈。

使用消息平臺,對開發人員,很容易使用和維護消息隊列,誰用誰知道。

二、消息管理

絕大多數公司,幾乎都會用到的主要幾個消息溝通工具,比如郵件、短信、微信、釘釘等消息。

消息的發送默認都是通過消息隊列,當然可以通過配置中心開關配置爲直接發送或寫庫異步發送。這裏你可以認爲消息是對消息隊列的最佳實踐,是不是比較拗口?咩哈哈。

這裏的“消息”和消息隊列平臺完全沒有關係。僅僅只是我的個人開發經驗,把郵件、短信、微信、釘釘等可複用的消息管理也歸屬到消息平臺而已。

1、消息配置

配置的內容還挺多:

支持郵件、短信和微信的動態配置。釘釘則比較特殊,可以通過配置中心配置。

2、消息模板

有過短消息或者推送系統的開發人員就知道消息模板的重要性了,可以省去很多很多代碼。

3、消息管理

對於某些敏感消息,可能需要加密或脫敏處理,或者乾脆不存儲敏感內容,PowerDotNet的消息管理有配置參數支持這一種特殊邏輯,點點按鈕即可搞定。

發送的消息,可能成功,可能失敗,可以通過消息管理進行特殊業務邏輯,如錯誤消息重試、定時異步發送等,對於這些主要功能,PowerDotNet都做到了,強大的消息平臺讓你的應用開發如虎添翼。

參考:

https://www.rabbitmq.com

https://www.rabbitmq.com/dotnet.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章