spring-boot-starter-amqp可以在微服务之间运行吗?

时间:2017-10-06 17:35:11

标签: spring-boot spring-amqp spring-rabbitmq

我是Spring amqp的新手。 我尝试按以下方式发送邮件:https://spring.io/guides/gs/messaging-rabbitmq/

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

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

请在这里帮助我。

2 个答案:

答案 0 :(得分:2)

你想要的是这样的(图来自我最近的blog post,其中还显示了更详细的代码示例):

Event producer and consumers are loosely coupled since an exchange serves as intermediary.

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

答案 1 :(得分:0)

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