远远低于你可以找到docker-compose.yml文件。
先决条件:
我使用docker-compose (docker-compose.yml,3 zookeepers)启动3个zookeeper服务器作为集群,然后我添加4. one (另一个docker-compose.yml ,1 zookeeper)到集群。 前三个动物园管理员中的一个是领导者,一个是跟随者,正如预期的那样。
问题:
当我停止前三名动物园管理员(通过<div ng-repeat="media in product.media">
<div class="thumbnail1 col-xs-12 col-sm-9" >
<div class="video-container">
<iframe ng-src="{{getIframeSrc(media.src)}}" frameborder="5" allowfullscreen></iframe>
</div>
</div>
</div>
)时,我&#34;失去&#34;领导者,我希望4.动物园管理员能够领导。
唯一发生的事情是zookeeper显示错误,例如:
docker-compose down
执行WARN Cannot open channel to 3 at election address localhost/127.0.0.1:43888
java.net.ConnectException: Connection refused
之前为此最后一个zookeeper返回了模式echo stat | nc localhost 52181 | grep Mode
,现在什么也没有返回。
仍在运行的zookeeper服务器只说,例如:
follower
解决方案1:
增加时间限制并没有帮助,结果相同:
INFO Closed socket connection for client /127.0.0.1:43548 (no session established for client) (org.apache.zookeeper.server.NIOServerCnxn)
ZOOKEEPER_TICK_TIME: 4000
ZOOKEEPER_INIT_LIMIT: 30
解决方案2:
当我首先启动单个zookeeper服务器(没有其他服务器已经运行)时,它只返回错误消息(请参阅上面的错误)并且显然没有正确运行,因为ZOOKEEPER_SYNC_LIMIT: 15
再次没有返回任何内容。
当我将其他3个动物园管理员添加到群集中时,所有动物园都运行良好,第一个zookeeper服务器是echo stat | nc localhost 52181 | grep Mode
。
杀死第一个动物园管理员,让3人跑步,其中一人是新的leader
。
问题:
docker-compose.yml文件:
我使用docker-compose和以下docker-compose.yml启动3个zookeeper服务器:
leader
我以相同的方式开始4.一个:
---
version: '2'
services:
zookeeper_1:
image: confluentinc/cp-zookeeper:3.1.1
network_mode: host
environment:
ZOOKEEPER_SERVER_ID: 1
ZOOKEEPER_CLIENT_PORT: 22181
ZOOKEEPER_TICK_TIME: 2000
ZOOKEEPER_INIT_LIMIT: 5
ZOOKEEPER_SYNC_LIMIT: 2
ZOOKEEPER_SERVERS: localhost:22888:23888;localhost:32888:33888;localhost:42888:43888;localhost:52888:53888
zookeeper_2:
image: confluentinc/cp-zookeeper:3.1.1
network_mode: host
environment:
ZOOKEEPER_SERVER_ID: 2
ZOOKEEPER_CLIENT_PORT: 32181
ZOOKEEPER_TICK_TIME: 2000
ZOOKEEPER_INIT_LIMIT: 5
ZOOKEEPER_SYNC_LIMIT: 2
ZOOKEEPER_SERVERS: localhost:22888:23888;localhost:32888:33888;localhost:42888:43888;localhost:52888:53888
zookeeper_3:
image: confluentinc/cp-zookeeper:3.1.1
network_mode: host
environment:
ZOOKEEPER_SERVER_ID: 3
ZOOKEEPER_CLIENT_PORT: 42181
ZOOKEEPER_TICK_TIME: 2000
ZOOKEEPER_INIT_LIMIT: 5
ZOOKEEPER_SYNC_LIMIT: 2
ZOOKEEPER_SERVERS: localhost:22888:23888;localhost:32888:33888;localhost:42888:43888;localhost:52888:53888
答案 0 :(得分:2)
要记住一件事:只有大多数服务器正在运行时,zookeeper才会启动。因此,如果您有4台服务器并将其中的3台服务器关闭,那么如果再启动两台服务器,zookeeper将会启动。
您使用的是哪个版本的zookeeper?如果它是3.5之前或(您使用3.5而不使用reconfig命令),则需要在更改配置时重新启动服务器。