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 .
- 同一微服务的一组实例共享一个队列。
- 消费微服务通过声明具有相同属性的
Queue
和 Binding
类型的 @Bean
来声明它们的队列以及队列和事件交换之间的绑定。
- 绑定定义每个微服务集群将接收哪些事件
- 所有微服务必须通过声明具有相同交换名称的
Exchange
类型的 @Bean
来共享相同的事件交换。
我是 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 . - 同一微服务的一组实例共享一个队列。
- 消费微服务通过声明具有相同属性的
Queue
和Binding
类型的@Bean
来声明它们的队列以及队列和事件交换之间的绑定。 - 绑定定义每个微服务集群将接收哪些事件
- 所有微服务必须通过声明具有相同交换名称的
Exchange
类型的@Bean
来共享相同的事件交换。