1

是否可以将端点配置为充当从分发者检索作业并订阅某种消息的工作人员?

我有以下情况(适用于销售术语)

*) 中央部门不时发布新价格清单。必须通知所有工人。这意味着,工作人员应该订阅此事件。

*) 当新订单到达中央时,它会将其发送给分销商,分销商将其发送给下一个空闲的工作人员进行处理。这意味着,必须将工作人员配置为接收来自分发者的消息。我使用以下配置:

 <MsmqTransportConfig
    InputQueue="worker"
    ErrorQueue="error"
    NumberOfWorkerThreads="2"
    MaxRetries="5"
  />

  <UnicastBusConfig
    DistributorControlAddress="distributorControlBus"
    DistributorDataAddress="distributorDataBus" >    
    <MessageEndpointMappings>
      <add Messages="Events" Endpoint="messagebus" />
    </MessageEndpointMappings>
  </UnicastBusConfig>

当我仅将其配置为工作人员或仅作为订阅者时,一切都按预期工作,但当我将其配置为两者时则不然。

我发现一条消息到达中央的输入队列,分发者的地址作为返回地址而不是工作人员地址,并且在这种情况下,发布者识别没有订阅者。有任何想法吗?提前致谢。

4

2 回答 2

1

工人不应该以这种方式使用 IFAIK。我认为要走的路是让您的中央订阅价格,当“NewOrderMessage”到达时,用所需的价格(可能只有该特定订单中产品的价格)丰富该数据,并向输入发送一个新的 ProcessOrderRequest分配器的队列。

另一种方法是让发送订单请求的流程在订单请求中包含价格。

这有任何意义吗?

/安德烈亚斯

于 2009-10-23T10:53:40.050 回答
1

分销商背后的工人是如何扩展单个逻辑订阅者,而不是如何处理多个逻辑订阅者。关键是工人池中只有一个工人应该得到给定的消息,在这种情况下,您希望所有工人在发布者看来都是一样的——这就是给出分发者地址的原因。

如果您有多个要扩展的逻辑订阅者,请为每个订阅者分配自己的分发服务器。

于 2009-10-23T16:17:05.030 回答