Требования Zookeeper 3.6.0 TCP изменились? - PullRequest
0 голосов
/ 25 марта 2020

После обновления 1 из существующих серверов v3.5.7 и V3.6.0 я обнаружил, что новый узел не присоединится к существующему кластеру Zookeeper, вместо этого он введет бесконечный l oop из следующего.

Журналы на существующем узле в кластере сообщают

 [myid:1] - WARN  [QuorumPeer[myid=1](plain=[0:0:0:0:0:0:0:0]:2181).    (secure=disabled):QuorumCnxManager@685] - Cannot open channel to 3 at election address service-    zk-x.xxxxxxx.xxxxxxx/172.26.47.92:3888
java.net.ConnectException: Connection refused (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:607)
    at      org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:656)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:720)
    at     org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:741)
    at     org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:910)
    at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:1229)

При запуске tcpdump на существующем узле следующее

IP 172.26.47.18.7 > 172.26.47.92.36638: Flags [R.], seq 0, ack 3465718752, win 0, length 0

.92 - новый сервер (V3.6.0)

После включения порта 7 на брандмауэре выбор кластера прошел успешно, и новый сервер присоединился к кластеру в обычном режиме. Я мог пропустить это в заметках о выпуске для v3.6. Кто-нибудь может подтвердить это изменение?

1 Ответ

0 голосов
/ 28 апреля 2020

Если вам все еще интересно, что изменилось в новой версии ZK 3.6.0, для которой требуется этот порт. Это новый параметр (multiAddress.reachabilityCheckEnabled), который по умолчанию имеет значение true и требует открытия порта 7 (echo). Либо откройте этот порт, либо установите для этого флага значение false, однако в производственной среде не рекомендуется изменять его флаг по умолчанию, как описано в документации: https://zookeeper.apache.org/doc/r3.6.0/zookeeperAdmin.html Этот флаг (порт) требуется только при установке multiAddress. enabled = true, чтобы указать несколько адресов для каждого экземпляра сервера ZooKeeper. Ура! * * 1004

...