0

我正在使用 Spring Boot 2.2.9.RELEASE 和 Spring Cloud Hoxton.SR7。我正在使用 Spring Cloud Bus 向 docker swarm 堆栈中的所有容器发出信号,并且当使用正在运行的 RabbitMQ 集群部署在生产环境中时,一切正常!

我正在通过spring-cloud-starter-bus-amqp Spring Boot 启动器使用 RabbitMQ 实现。我们偶尔会在不需要总线的情况下运行测试。为此有一个弹簧启动标志:

spring.cloud.bus.enabled=false

这会禁用总线,但rabbitMQ 仍然启动,并吐出连接拒绝错误。我还必须补充:

rabbitmq.autoStarting=false

我尝试过禁用 RabbitMQ 的自动配置,但似乎有一个RabbitAutoConfiguration类暗示它是一个 SB 自动配置类,但实际上它是一个普通的 SB 配置类。

是否有更清洁的方法来禁用云总线,同时阻止 RabbitMQ 启动?

4

1 回答 1

0

您只需要在测试范围中包含 spring-cloud-stream-test-support jar。此 jar 包含将覆盖和替换默认活页夹的活页夹。这些测试绑定器实际上不会连接到后台的资源。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-stream-test-support</artifactId>
    <version>${spring.cloud.stream.version}</version>
    <scope>test</scope>
</dependency>
于 2021-10-22T17:40:18.033 回答