【问题标题】:Set zookeeper host and port for spring-cloud-bus为 spring-cloud-bus 设置 zookeeper 主机和端口
【发布时间】:2018-10-25 12:05:40
【问题描述】:

我有一个带有 spring-cloud-starter-bus-kafka 的项目,我在 application.yml 中设置了 kafka URL,如下所示:

spring.kafka.bootstrap-servers=localhost:9092

当 kafka 和 zookeeper 部署在本地时,这有效,但是如果我将 kafka 和 zookeeper 移动到他们自己的服务器上,我会在 spring-boot 启动时收到错误:

新配置

spring.kafka.bootstrap-servers=192.168.0.120:9092

错误

{
    "@timestamp" : "2018-05-15T14:56:45.628+00:00",
    "message" : "Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)",
    "logger_name" : "org.apache.zookeeper.ClientCnxn",
    "thread_name" : "main-SendThread(localhost:2181)",
    "level" : "INFO"
}
{
    "@timestamp" : "2018-05-15T14:56:45.629+00:00",
    "message" : "Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect",
    "logger_name" : "org.apache.zookeeper.ClientCnxn",
    "thread_name" : "main-SendThread(localhost:2181)",
    "level" : "WARN",
    "stack_trace" : "java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)"
}

我应该如何配置 kafka 和 zookeeper 以连接到他们的服务器?

【问题讨论】:

    标签: java spring apache-zookeeper spring-kafka spring-cloud-bus


    【解决方案1】:

    Spring 的文档中有一段关于它:

    https://docs.spring.io/spring-cloud-stream/docs/Ditmars.SR3/reference/htmlsingle/index.html#_kafka_binder_properties

    您可以替换Application.yml上的默认网址

    spring:
      cloud:
        stream:
          kafka:
            binder:
              zkNodes: ADDRESS:PORT
              brokers: ADDRESS:PORT
    

    或者使用.properties

    spring.cloud.stream.kafka.binder.zkNodes = ADDRESS:PORT
    

    【讨论】:

      【解决方案2】:

      你用的是什么版本?在 2.0 中,不需要连接到 zookeeper。

      对于早期版本,您需要设置spring.cloud.stream.kafka.binder.zkNodes

      Spring Cloud Stream documentation here.

      【讨论】:

      • 我正在使用1.5.10.RELEASE,也尝试过spring.cloud.stream.kafka.binder.zkNodes=192.168.0.120:9092,但没有成功
      • 否; ZK 需要端口 2181(默认情况下)- 9092 是 kafka 代理。
      • 也没用,仍然在尝试连接本地主机:{ "@timestamp" : "2018-05-15T16:09:07.898+00:00", "message" : "Initiating client连接,connectString=localhost:2181 sessionTimeout=10000 watcher=org.I0Itec.zkclient.ZkClient@653b9612","logger_name":"org.apache.zookeeper.ZooKeeper","thread_name":"main","level":"信息”}
      • 我刚刚通过添加一个虚假的 zkNodes 值来测试它——指向一个没有运行 ZK 的服务器,并得到了你的错误;你一定是配置错了。
      • 不知道如果我 telnet 192.168.0.120:2181 连接我还有什么问题,这就是我在 application.yml 文件中的内容:spring.cloud.bus.trace.enabled=truespring.cloud.bus.ack.enabled=falsespring.cloud.bus.refresh.enabled=false spring.cloud.stream.kafka.zkNodes=192.168.0.120spring.kafka.bootstrap-servers=192.168.0.120:9092
      猜你喜欢
      • 2019-02-19
      • 2019-06-12
      • 1970-01-01
      • 2021-07-04
      • 2014-08-02
      • 2016-09-29
      • 2022-10-25
      • 2013-02-27
      • 2014-07-10
      相关资源
      最近更新 更多