【问题标题】:NServiceBus Distributor/Worker ConfigurationErrorsException - 'MasterNodeConfig.Node' points to a local host name: [localhost]NServiceBus Distributor/Worker ConfigurationErrorsException - 'MasterNodeConfig.Node' 指向本地主机名:[localhost]
【发布时间】:2016-07-15 04:26:34
【问题描述】:

我正在尝试配置 NServiceBus Distributor/Worker 以用于开发目的。我安装了以下依赖项:

  • NServiceBus.Core v5.2.14
  • NServiceBus.Distributor.MSMQ v5.0.4
  • NServiceBus.Host v6.0.0

在其中一名工作人员中引发 ConfigurationErrorsException,并显示以下消息:

'MasterNodeConfig.Node' 指向一个本地主机名:[localhost]

这个错误的意图很明确。指向 localhost 的配置违背了分布式架构的目的。尽管出于开发目的,这种类型的配置是最佳的。以下是我的工人的配置:

<TransportConfig MaxRetries="5"/>

<MasterNodeConfig Node="localhost"/>
<UnicastBusConfig
  DistributorControlAddress="distributor.distributor.control@localhost"
  DistributorDataAddress="distributor@localhost">
    <MessageEndpointMappings></MessageEndpointMappings>
</UnicastBusConfig>

<MessageForwardingInCaseOfFaultConfig ErrorQueue="error"/>

下面的链接是一个工作示例:

Scale Out with the Distributor

将我的解决方案与上面链接中的示例进行比较,不清楚是什么导致了我的工作人员中的 ConfigurationErrorsException。有什么建议吗?

【问题讨论】:

    标签: nservicebus


    【解决方案1】:

    尝试为 Distributor 创建一个可以在单台机器上运行的示例,根据定义,它应该在多台机器上运行,这有点困难。 (该示例确实讨论了在更下方的真实环境中横向扩展。我们在顶部附近添加了一个注释以链接到它。)

    示例中不在您的代码中的部分是 appSetting:

    <appSettings>
      <add 
        key="NServiceBus/Distributor/WorkerNameToUseWhileTesting" 
        value="Samples.Scaleout.Worker1" />
    </appSettings>
    

    如果存在此设置,则将跳过 MasterNode 配置中的环回地址检查。不幸的是,这没有记录在案,并且可能只是为了使该示例工作而存在。作为我提出的问题的一部分,我们将进行调查和解决。

    然而,在现实生活中,您应该真正使用完整的机器名称而不是 localhost。当然,您不能在示例中做到这一点。

    另一个项目是MasterNodeConfig 和DistributorControlAddress/DistributorDataAddress 属性在UnicastBusConfig 上并没有真正在一起,或者不需要。

    MasterNodeConfig 是一种使用相同配置文件配置所有端点的简单方法。如果端点为Sales,主节点为ServerA,则控制地址为Sales.Control@ServerA,数据地址为Sales@ServerA。但这总是假设多台机器。因此,这两个属性允许您指定可能在同一台机器上的自定义队列。因此,如果您使用这两个属性,则根本不应该使用MasterNodeConfig。

    【讨论】:

    • 那是缺失的部分。谢谢大卫。
    • @Pietro 根据您的发布时间表,测试版 NSB 6 可能是您的不错选择。特别是消除了分配器对扩展 MSMQ 传输的需要。 NSB 6 还有很多其他好处,是一个不错的选择。但是,Speciality 没有说他们计划何时发布 v6,但我认识的几个 Particular 开发人员对 EOY 版本持乐观态度。大卫,你想放弃一些更具体的东西;)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    相关资源
    最近更新 更多