分布式高性能消息处理中心HPMessageCenter
生活随笔
收集整理的這篇文章主要介紹了
分布式高性能消息处理中心HPMessageCenter
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
HPMessageCenter
高性能消息分發中心。用戶只需寫好restful接口,在portal里面配置消息的處理地址,消息消費者就會自動訪問相關接口,完成消息任務。(其實HPMessageCenter有兩個版本,這次開源的是第二個版本。在第一個版本,消息消費失敗的重試依賴數據庫進行,造成了很大的性能影響。我一直在思考怎樣不依賴數據庫來進行消息重試,看過一些實現是通過在內存中計數,這種方式存在很大的風險,系統宕機過后這個失敗的消息就只能手動處理。我一直在想,如果每次RabbitMQ重入隊的消息能在消息屬性中加一個消息發送次數的計數就好了。最后,我利用延時隊列和死信隊列,通過在MessageHeader中設置RetryNumbers來重新設計了消息消費失敗的重試機制。) Git地址https://gitee.com/dugukuangshao/HPMessageCenter部署說明
**創建數據庫執行Scripts文件夾中的數據庫腳本** **配置數據庫連接字符串** 打開MessageCenter.Portal\Configuration\Data\Database.config在圖片中畫紅線的地方修改鏈接字符串**配置RabbitMQ連接屬性** 打開MessageCenter.Portal\appsettings.json在圖片中畫紅線的地方修改RabbitMQ地址和用戶名密碼部署MessageCenter.Portal到IIS或者Docker中,即可訪問使用說明
**在首頁中配置App和Exchange** **在Topic管理頁面中配置Topic信息** ProcessorConfig為消息消費者處理消息的Restful接口**最后在消費者管理頁面中添加Sever要運行的Consumer** 此時,通過Publisher/Publish接口發送消息到RabbitMQ,系統中的消費者會自動訪問配置的對應消息處理接口處理消息。### 為什么要開發這樣一個消息系統使用此消息系統處理消息,開發者只需調用接口發送消息、寫消息處理的接口,不必關心MQ的實現和使用,使開發者更關注業務,提高開發效率。
擴展性
MessageTransit模塊是一個高度抽象的模塊,開發者可以繼承它的接口實現其他MQ(ActiveMQ和RocketMQ等)的對接。該模塊還設計了IMonitor和ILogger接口,開發者可以繼承IMonitor接口,自定義實現消息處理失敗的短信、郵件通知等功能,繼承ILogger接口,可以實現MQ斷線的通知等,當然默認的RabbitMQ實現支持斷線重連。性能
一個Sever里每個Topic對應一個消費者。一個消費者一次處理一個消息,如果發生消息處理不及時的情況,可以部署多個Sever,并在消費者管理頁面添加對應的消息消費者。如果消息數量進一步提高,就需要同步增加消息Restful處理接口的處理能力。比如,一個消息處理接口可以處理每分鐘300個并發,一個Sever每分鐘只能處理60個消息,此時可以部署5個Sever。消息進一步增加,消息處理接口性能達到瓶頸,增加消息處理接口的處理能力,再增加Sever數即可提高性能。原文地址:http://www.cnblogs.com/DKSL/p/8489544.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的分布式高性能消息处理中心HPMessageCenter的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core:新的快速开发平台
- 下一篇: 浅谈Log4net在项目中如何记录日志