spring-boot-starter-amqp 可以在微服务之间工作吗?

spring-boot-starter-amqp will works between micro services?

我是 Spring amqp 的新手。 我尝试通过以下方式发送消息:https://spring.io/guides/gs/messaging-rabbitmq/

我可以在微服务中发送消息。 但是无法将消息发送到另一个微服务?是否符合预期?

如果我想在微服务之间发送消息,我应该遵循哪个依赖关系?

请帮帮我。

在一项服务中,您将发送消息,而在另一项服务中接收消息。在示例中,您现在在 1 个项目中都有。在发送服务中,您有 RabbitTemplate,在另一个服务中,有带有 SimpleMessageListenerContainer 和 MessageListenerAdapter bean 的接收者。确保绑定、队列和交换配置相同,并且服务都连接到同一个 RabbitMQ 服务器。

你想要的是这样的(图取自我最近的一个blog post,里面还有更详细的代码示例):

  • 这里,举个例子,像 "customer.created" 或 "order.deleted" 这样的 CRUD 事件被认为是
  • 任何微服务都可以充当事件生产者并通过 RabbitTemplate 将事件发送到事件交换器,这是由 Spring AMQP 提供的,并且可以注入任何 Spring Bean .
  • 同一微服务的一组实例共享一个队列。
  • 消费微服务通过声明具有相同属性的 QueueBinding 类型的 @Bean 来声明它们的队列以及队列和事件交换之间的绑定。
  • 绑定定义每个微服务集群将接收哪些事件
  • 所有微服务必须通过声明具有相同交换名称的 Exchange 类型的 @Bean 来共享相同的事件交换。