我是RabbitMQ的新手。我希望有其他服务的“集成事件”。因此,一种为所有微服务提供消息的路由。
但是,如果我已经复制了用于缩放的服务,则不希望所有复制的服务都接收消息。
示例:
/T5109.2-1988商业商品、商品、商业、金融、商业、金融、金融、商业、金融、商业、金融、金融、商业、金融等行业的产品、商品、商品
服务A>推送消息>>>服务B(不应接收消息,将被复制)
/T1459.2-1993商品、商品、商业、金融、商业、金融、金融、商业、金融、商业、金融、金融、商业、金融、商业、金融等行业的商品、
我认为这是"routing“和"work queues”的组合,我需要什么?
但我如何才能正确地做到这一点呢?如果您有示例,我使用Node.js或C#。
发布于 2019-11-01 11:13:37
在这种情况下,扩展您的服务(消费者)不是问题。相反,这是队列工作方式的一个特性。
简而言之,一个服务实例从一个队列中消费,或者10个实例从同一个队列中消费,这都无关紧要。只有一个使用者将从该队列接收相同的消息。将此视为以周知博方式分发的消息。
如果要向多个使用者发送相同的消息,则必须(最终)在单独的队列中发布该消息。也就是说,每个使用者都应该侦听特定的队列,并且exchange会在所有队列上发布消息。法努特交易所可能会在这里工作。
发布于 2019-10-31 17:21:11
我在这里中有我的微服务和DDD信息。瞧一瞧
如果要将事件发布到特殊服务,则应使用服务总线。我用NServiceBus。它是.net中最好的工具。RabbitMQ只是一个队列。在NServiceBus内部,您可以使用许多不同的排队,如RabbitMQ、SqlServer等。
现在,对于您的示例,Service发布一个事件,比方说UserCreated。服务B有一个EventHandler作为UserCreatedEventHandler。然后服务B可以得到任何发布的UserCreated事件。NServiceBus让自动订阅和消息路由知道在什么事件上订阅什么服务。他们的文件完美无缺。看看他们
https://stackoverflow.com/questions/58648098
复制相似问题