我是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