• Enterprise Library Step By Step系列(十四):创建基于消息队列(MSMQ)的异步日志


    创建基于消息队列(MSMQ)的异步日志

    一.概述

    Enterprise Library Step By Step系列里我们说过,日志和检测应用程序块主要由2部分组成:ClientDistributorClient负责创建消息,这些消息将由Distributor写入目标位置。Client根据分发策略(Distribution Strategies)发送消息到Distributor,在Application Block中提供了2个分发策略:In ProcessMSMQ,默认的是In Process策略。同步日志是在Client进程中完成的,而异步日志是利用了MSMQ来实现的,Client需要创建日志消息并发送到MSMQ消息队列。另外一个进程则等待到达的消息,并写入合适的日志接收池

    应用程序块中包含一个Windows Service: MSMQ Distributor Service。当安装该服务后,该服务会在指定的时间间隔检测消息队列。

    我们看一下日志和监测应用程序块处理的流程图:

     

    二.安装并配置MSMQ Distributor Service

    1.打开Visual Studio命令行工具,切换到目录(默认的企业库安装路径)C:\Program Files\Microsoft Enterprise Library\bin下,运行如下命令:

    installutil /i MsmqDistributor.exe

    注意:必须要以这种方式安装服务,否则安装不成功。

    2.安装过程中会弹出一个设置服务登录对话框,要求输入用户名和密码。此时用户名和密码的形式必须以域用户的形式输入,用<.\username>的形式也是可以的,如下图所示:

     

    3.启动服务。我们在服务管理器里面找到Enterprise Library Logging Distributor Service这项服务,手工启动它。

     

    4.用文本编辑器打开MsmqDistributor.exe.config文件,删除如下这节:

    <configurationSections>
        
    <configurationSection name="loggingConfiguration" encrypt="false">
          
    <storageProvider xsi:type="XmlFileStorageProviderData" name="XML File Storage Provider" path="loggingConfiguration.config" />
          
    <dataTransformer xsi:type="XmlSerializerTransformerData" name="Xml Serializer Transformer">
            
    <includeTypes />
         
    </dataTransformer>
    </configurationSection>

    5.用Configuration Console, 打开 MsmqDistributor.exe.config 文件

    MSMQ Distributor Service 添加到 Distributor Settings,如下图所示:

     

    6.设定 MsmqPath 属性匹配 Client 的队列名,我们可以修改MsmqPath的值,但是该值必须与我们应用程序中的Client配置的一致。

     

    三.使用MSMQ创建异步日志

    1.我们前面说过,Client Settings 决定分发策略,一个Client的所有消息使用同一个策略。所以我们不能同时创建两个策略,必须先删除In Process后,才能创建MSMQ

     

    2.创建MSMQ分发策略之后,注意队列名必须和我们刚才在第二节里面所说的一致:

     

    3.其他的操作就跟我在Enterprise Library Step By Step系列里面写的一样了。

    请大家参考:

    Enterprise Library Step By Step系列(七):日志和监测应用程序块——入门篇

    Enterprise Library Step By Step系列(八):日志和监测应用程序块——进阶篇

    支持TerryLee的创业产品Worktile
    Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
    https://worktile.com
  • 相关阅读:
    PHP-Manual的学习----【语言参考】----【基本语法】
    PHP-Manual的学习----【安装与配置】
    Python HTML解析模块HTMLParser(爬虫工具)
    Apache 配置方法(虚拟目录、域名、虚拟主机等)
    Apache httpd.conf配置文件主要内容解释
    Apache Windows下Apache安装步骤
    Apache Linux下Apache安装步骤
    【LOJ】#2055. 「TJOI / HEOI2016」排序
    【LOJ】#2054. 「TJOI / HEOI2016」树
    【LOJ】#2052. 「HNOI2016」矿区
  • 原文地址:https://www.cnblogs.com/Terrylee/p/288576.html
Copyright © 2020-2023  润新知