Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NServiceBus-处理同一消息的多个端点_C#_Nservicebus_Azureservicebus - Fatal编程技术网

C# NServiceBus-处理同一消息的多个端点

C# NServiceBus-处理同一消息的多个端点,c#,nservicebus,azureservicebus,C#,Nservicebus,Azureservicebus,我有多个端点(在不同的服务器上,来自不同的公司)指向同一个队列(我使用的是“OverrideLocalAddress”方法)。当我为此队列发送消息时,我正在添加一个带有公司ID的头 我想选择正确的端点来选择此邮件。我使用管道过滤我正在接收的消息(通过标题中的公司ID),但只有第一个(随机)端点获得消息 有没有办法让每个端点都选择一条消息?是否有更好的方式将消息发送到特定端点?您使用的是竞争消费者模式,这是一种很好的模式 我假设您不需要消息到达特定端点,您需要在特定数据库中更新数据。换句话说,

我有多个端点(在不同的服务器上,来自不同的公司)指向同一个队列(我使用的是“OverrideLocalAddress”方法)。当我为此队列发送消息时,我正在添加一个带有公司ID的头

我想选择正确的端点来选择此邮件。我使用管道过滤我正在接收的消息(通过标题中的公司ID),但只有第一个(随机)端点获得消息


有没有办法让每个端点都选择一条消息?是否有更好的方式将消息发送到特定端点?

您使用的是竞争消费者模式,这是一种很好的模式

我假设您不需要消息到达特定端点,您需要在特定数据库中更新数据。换句话说,您需要多租户,这使您能够使用相同的代码库向不同的客户提供服务,同时最大限度地减少他们对彼此的影响

我们最近写了一篇关于NServiceBus中一些新功能的博客,以更好地实现这一点:

您应该能够提供自定义代码和自定义连接字符串(到特定客户数据库)以启用多租户。这取决于您正在使用的持久器。我们有和其他坚持者,也有解释如何或

我希望这有帮助

更新
我不确定这是否是最好的解决方案,可能还有其他解决方案,但您可以使用
sendpoptions
路由到特定的逻辑端点。

您使用的是
竞争消费者模式,这是一个很好的模式

我假设您不需要消息到达特定端点,您需要在特定数据库中更新数据。换句话说,您需要多租户,这使您能够使用相同的代码库向不同的客户提供服务,同时最大限度地减少他们对彼此的影响

我们最近写了一篇关于NServiceBus中一些新功能的博客,以更好地实现这一点:

您应该能够提供自定义代码和自定义连接字符串(到特定客户数据库)以启用多租户。这取决于您正在使用的持久器。我们有和其他坚持者,也有解释如何或

我希望这有帮助

更新
我不确定这是否是最好的解决方案,可能还有其他解决方案,但您可以使用
sendpoptions
路由到特定的逻辑端点。

您可能不想共享一些代码或编译MCVE(),以帮助其他人更好地理解您的问题。嗨,Pedro,我们之前曾就此进行过简短的交谈。你想要达到的目的是什么?为什么每个扩展的端点不能处理消息并使用多租户打开到特定数据库的连接?@DennisvanderStelt让我试着解释一下我的场景:我有一个拥有数千家公司的云ERP。这些公司在云中创建/更新产品,他们需要在各自的本地数据库中使用这些产品(离线使用)。我在公司的服务器上有一个服务端,该服务端监听特定队列中的一些命令。当我在ERP中发送消息/命令(标题中带有公司ID)时,我需要找到正确的端点来获取此消息。我正在使用管道使用标头过滤消息,但只有第一个端点才能获取消息。您不想共享一些代码或编译MCVE(),以帮助其他人更好地了解您的问题。嗨,Pedro,我们之前简要地聊过这一点。你想要达到的目的是什么?为什么每个扩展的端点不能处理消息并使用多租户打开到特定数据库的连接?@DennisvanderStelt让我试着解释一下我的场景:我有一个拥有数千家公司的云ERP。这些公司在云中创建/更新产品,他们需要在各自的本地数据库中使用这些产品(离线使用)。我在公司的服务器上有一个服务端,该服务端监听特定队列中的一些命令。当我在ERP中发送消息/命令(标题中带有公司ID)时,我需要找到正确的端点来获取此消息。我正在使用管道来使用头过滤消息,但是只有第一个端点得到了消息。感谢回复!我认为这种方法对我没有帮助,因为我无法从外部访问公司的数据库。这就是为什么我创建了一个在公司服务器(数据库所在地)上运行的服务。我不知道它是否相关,但我实际上并不发送消息中的数据,我只是发送一个日期范围,供消息处理程序用于捕获数据。我只需要告诉公司的服务部门有新的数据需要捕获。任何其他帮助都将不胜感激!如果你能联系我们,那就太好了support@particular.net. 这需要更多的背景,也许还需要一次电话会议来确保我们的观点一致。但是,如果您需要将消息发送到在其他位置运行的特定端点,请使用SendOptions:ThankefromReply!我认为这种方法对我没有帮助,因为我无法从外部访问公司的数据库。这就是为什么我创建了一个在公司服务器(数据库所在地)上运行的服务。我不知道它是否相关,但我实际上并不发送消息中的数据,我只是发送一个日期范围,供消息处理程序用于捕获数据。我只需要告诉公司的服务部门有新的数据需要捕获。任何其他帮助都将不胜感激!如果你能联系我们,那就太好了support@particular.net. 这需要更多的背景,也许还需要一次电话会议来确保我们的观点一致。但是,如果需要将消息发送到在其他位置运行的特定端点,请使用SendOptions: