【问题标题】:Disabled ZooKeeper in bootstrap.yml, it still runs during testing在 bootstrap.yml 中禁用 ZooKeeper,它在测试期间仍然运行
【发布时间】:2020-11-10 03:44:00
【问题描述】:

我正在运行一个 SpringBoot 应用程序。我有 bootstrap-test.yml(位于 src/test/resources/config 下),如下所示:

spring.cloud.config.enabled: false
spring.cloud.service-registry.auto-registration.enabled: false
spring.cloud.zookeeper.discovery.enabled: false
spring.cloud.zookeeper.discovery.register: false

        

pom:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
    <version>2.2.2.RELEASE</version>
</dependency>

但是,当我尝试运行集成测试时:

@ActiveProfiles("test")
@DirtiesContext 
@SpringBootTest
public class TestClass......

ZooKeeper 仍然尝试“实时”连接:

16:02:14.752 [main] INFO  org.apache.zookeeper.ZooKeeper - Client environment:os.memory.free=493MB
16:02:14.752 [main] INFO  org.apache.zookeeper.ZooKeeper - Client environment:os.memory.max=8116MB
16:02:14.752 [main] INFO  org.apache.zookeeper.ZooKeeper - Client environment:os.memory.total=610MB
16:02:14.778 [main] INFO  o.a.c.f.imps.CuratorFrameworkImpl - Starting
16:02:14.783 [main] INFO  org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=localhost:2181 sessionTimeout=60000 watcher=org.apache.curator.ConnectionState@76d828ff
16:02:14.788 [main] INFO  o.apache.zookeeper.ClientCnxnSocket - jute.maxbuffer value is 4194304 Bytes
16:02:14.798 [main-SendThread(localhost:2181)] INFO  org.apache.zookeeper.ClientCnxn - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
16:02:14.805 [main] INFO  o.a.c.f.imps.CuratorFrameworkImpl - Default schema
16:02:16.805 [main-SendThread(localhost:2181)] WARN  org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused: no further information
    at java.base/sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:357)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1214)

我想禁用所有 zookeeper 引导操作以进行集成测试。什么给出了,我很沮丧,不知道出了什么问题:为什么当我禁用 Zookeeper 时它仍然试图运行?提前致谢。

【问题讨论】:

    标签: spring spring-boot spring-cloud-zookeeper


    【解决方案1】:

    这应该可行!

    spring.cloud.zookeeper.enabled=false
    

    对于yaml

    spring:
      cloud:
        zookeeper:
            enabled: false
    

    【讨论】:

    • 试过了,yml用":"代替了"="。我只保留了 bootstrap-test.yml:spring.cloud.zookeeper.config.enabled: false。 Zookeeper 仍在运行。
    • @Alpha_Omega 我认为对于yaml,您需要放入嵌套结构,而不是内联。 (每一个都被tab空间嵌套)
    • 还是不行,真是奇怪。 stackoverflow 上的其他答案清楚地表明这应该有效。我如何确定 Spring 是否正在获取我的引导配置?
    • 天哪,你是个天才
    • 呵呵,谢谢你:)
    猜你喜欢
    • 2011-11-18
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 2021-06-21
    • 2013-08-04
    相关资源
    最近更新 更多