我是Spring amqp的新手。 我试图通过以下方式发送消息:https://spring.io/guides/gs/messaging-rabbitmq/spring-boot-starter-amqp将在微服务之间起作用吗?
我能够在微服务内发送消息。 但无法发送消息到另一个微服务?是否预计?
如果我想发送微服务之间的消息,我应该遵循的依赖关系?
请帮我这里。
我是Spring amqp的新手。 我试图通过以下方式发送消息:https://spring.io/guides/gs/messaging-rabbitmq/spring-boot-starter-amqp将在微服务之间起作用吗?
我能够在微服务内发送消息。 但无法发送消息到另一个微服务?是否预计?
如果我想发送微服务之间的消息,我应该遵循的依赖关系?
请帮我这里。
在一个服务中,您将发送该消息,并在另一个服务中接收它。在这个例子中,你现在有两个项目。在发送服务中,您有RabbitTemplate,而在其他服务中,Receiver使用SimpleMessageListenerContainer和MessageListenerAdapter bean。确保绑定,队列和交换配置相同,并且服务都连接到相同的RabbitMQ服务器。
你需要的是这样的事情(数字从我最近,这也说明blog post采取更详细的代码示例):
RabbitTemplate
发送事件给事件交换,这是由Spring AMQP提供的,并且可以被注入任何Spring Bean 。@Bean
s来表示Queue
和Binding
具有相同属性,从而声明它们的队列以及队列和事件交换之间的绑定。Exchange
类型的@Bean
具有相同名称交换被接收的绑定定义。
非常感谢,它按预期工作。只需一次确认,在发送服务中,我没有为RabbitTemplate指定任何配置。我只在application.properties文件中指定了rabbitmq连接参数。 Spring Boot是否会自动创建带有这些连接参数的RabbitTemplate bean?请确认。 – Krish
正确。您了解启动魔术正确:https://docs.spring.io/spring-boot/docs/1.5.7.RELEASE/reference/htmlsingle/#boot-features-amqp,并查看默认的“RabbitProperties”:https: //github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfiguration/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java –
@ArtemBilan感谢您的确认... – Krish