首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Enterprise Library 實戰系列(十四):建立基於 MSMQ 的非同步記錄機制

     編輯:關於.NET

一、非同步記錄架構概述

記錄與檢測應用程式區塊包含 Client(建立訊息)與 Distributor(寫入目標)兩部分。Client 依據分發策略將訊息送至 Distributor,內建兩種策略:

  • In Process(預設):同步記錄,Client 進程直接寫入
  • MSMQ:非同步記錄,Client 將訊息送入 MSMQ 佇列,另一進程(Windows Service)定期檢查佇列並寫入

記錄處理流程圖

二、安裝與設定 MSMQ Distributor Service

  1. 安裝服務:開啟 VS 命令提示字元,切換至 C:\Program Files\Microsoft Enterprise Library\bin,執行:
    installutil /i MsmqDistributor.exe
    注意:必須用此方式安裝,否則會失敗。
  2. 設定服務登入身分:安裝過程會彈出對話框,需以網域使用者格式輸入(如 .\username)
    服務登入設定
  3. 啟動服務:在服務管理工具中找到 Enterprise Library Logging Distributor Service 並手動啟動
    服務管理
  4. 修改 MsmqDistributor.exe.config:刪除 <configurationSections> 區段
  5. 用組態工具開啟 MsmqDistributor.exe.config:將 MSMQ Distributor Service 加入 Distributor Settings
    Distributor 設定
  6. 設定 MsmqPath:必須與 Client 端組態一致
    MsmqPath 設定

三、啟用 MSMQ 非同步記錄

  1. 在 Client Settings 中刪除預設的 In Process 策略(同一 Client 僅能使用一種策略)
    刪除 In Process
  2. 新增 MSMQ 分發策略,佇列名稱與上步驟一致
    新增 MSMQ 策略
  3. 其他記錄設定(Category、Sink、Formatter 等)與同步模式相同

關鍵優勢

  • 主應用程式不被記錄 I/O 阻塞,效能提升
  • 訊息持久化於佇列,服務重啟不遺失記錄
  • 支援多應用程式共用單一記錄服務
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved