消息隊列已經幾乎成爲大中型高吞吐應用的標配,繼續根據我們一貫的節約代碼的風格,爲了複用的目標,抽象出消息隊列平臺,進行消息隊列管理。
環境準備
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都做到了,強大的消息平臺讓你的應用開發如虎添翼。
參考: