[英]NServiceBus - Multiple endpoints processing the same message
我有多个端点(在不同的服务器上,来自不同的公司)指向同一个队列(我正在使用“OverrideLocalAddress”方法)。 当我为此队列发送消息时,我添加了带有公司 ID 的 header。
我想选择正确的端点来选择此消息。 我正在使用 Pipeline 过滤我收到的消息(按标题中的公司 ID),但只有第一个(随机)端点正在获取消息。
有没有办法让每个端点都选择一条消息? 有没有更好的方法将消息发送到特定端点?
您正在使用Competing Consumer
模式,这是一个很棒的模式!
https://www.enterpriseintegrationpatterns.com/patterns/messaging/CompetingConsumers.html https://docs.microsoft.com/en-us/azure/architecture/patterns/competing-consumers
我假设您不需要消息到达特定端点,您需要在特定数据库中更新数据。 换句话说,您需要多租户,这使您能够使用相同的代码库为不同的客户提供服务,同时最大限度地减少他们对彼此的影响。
我们最近写了一篇关于 NServiceBus 中的一些新特性的博文,以更好地实现这一点: https://particular.net/blog/multi-tenancy-support-in-sql-persistence
您应该能够提供自定义代码和自定义连接字符串(针对特定客户数据库)以启用多租户。 这取决于您使用的持久化器。 我们有SQL 服务器和其他持久化器的文档,还有解释如何将租户感知组件注入消息处理程序或将租户信息传播到下游端点的示例。
我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.