Spring 两个消息代理之间的集成

Spring Integration between two message brokers

我是 Spring-集成的新手。

我的用例是:

监听 RabbitMQ queue/topic,获取消息,处理它,将它发送到其他消息代理(主要是另一个 RabbitMQ 实例)。

预期负载:5000 messages/sec

在application.properties中我们可以为一台主机设置配置。

如何使用Spring两个消息代理之间的集成?

我看到的所有示例都是针对一个消息代理的。开始使用两个消息代理和 Spring 集成的任何指示。

此致,

马赫什

既然您提到了 application.properties,听起来您使用的是 Spring 引导及其自动配置功能。这是您问题中非常重要的细节,因为 Spring Boot 对自动配置有意见,您实际上只能自动配置一个代理连接配置。如果你想在同一个应用程序中有另一个类似的应用程序,那么你应该忘记自动配置功能。您仍然可以使用提到的 application.properties,但您必须手动管理它们。

既然你说的是RabbitMQ连接,那么你需要排除RabbitAutoConfiguration并手动管理所有需要的bean:

@SpringBootApplication(exclude = RabbitAutoConfiguration.class)

您仍然可以在某些 @Configuration class 上使用 @EnableConfigurationProperties(RabbitProperties.class) 来注入 RabbitProperties 并填充相应的 CachingConnectionFactory。对于第二个代理,您可以引入自己的 @ConfigurationProperties 或通过 @Value 手动配置所有读取属性。在 Spring AMQP 参考手册中查看有关手动连接工厂配置的更多信息:https://docs.spring.io/spring-amqp/docs/2.2.1.RELEASE/reference/html/#connections