如何使用管理员TestingServer启动Zookeeper集合

f1tvaqid  于 2022-12-09  发布在  Apache
关注(0)|答案(1)|浏览(96)

我只是试图使用Curator frame workzookeeper启动一个带有java实现的zookeeper合奏(领导者-跟随者)。
最初我用二进制模式进行了检查,它在下面显示的示例配置中工作得很好。

动物园.cfg

tickTime=2000
dataDir=/var/lib/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888

myid文件,Zookeeper集合体如我所期望的那样创建(领导者-追随者创建)。

Connections: 4
Outstanding: 0
Zxid: 0x30000052a
Mode: leader
Node count: 158
Proposal sizes last/min/max: 146/36/1471

当我尝试使用org.apache.zookeeper.server.quorum.QuorumPeerConfig配置和类来实现同样的目标时,

org.apache.Zookeeper.服务器.Zookeeper服务器Main

ZooKeeperServerMain zkServer = new ZooKeeperServerMain();
        final ServerConfig configuration = new ServerConfig();
        configuration.readFrom(peerConfig);
        new Thread(() -> {
            try {
                zkServer.runFromConfig(configuration);
                Thread.sleep(2000);
            } catch (Exception e) {
                logger.error("ZooKeeper Failed", e);
            }
        }).start();

org.apache.管理员.测试.测试服务器

InstanceSpec spec = new InstanceSpec(zkDataDir, clientPort, electionPort, -1, true, serverId, tickTime, maxClientCnxns, customProperties);

zkServer = new TestingServer(spec, true);

这两个实现都是以独立模式启动zookeeper的,而且看起来这两个实现都不关心配置server.1=..... server.2=.... server.3=.....

我在这里错过了什么?如何在领导者跟随者模式下使用java启动Zookeeper?
**注:**我是新手,与Zookeeper相关的东西和文件仍然困惑我。请指导我同样的..谢谢...:)

gk7wooem

gk7wooem1#

管理者TestingServer可以被视为常规的ZooKeeper服务器。因此,领导者-追随者可以用它来测试,例如使用管理者LeaderLatch。
主从单元测试示例
领导者-跟随者实现示例
注:我是这个项目的作者。

相关问题