summaryrefslogtreecommitdiffstats
path: root/zookeeper-server
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-11-25 11:23:05 +0100
committerHarald Musum <musum@verizonmedia.com>2020-11-25 11:23:05 +0100
commit03c76bf6627dcb69988ebb4cf86ec74d311f9f24 (patch)
treea68f496a1370941534117875007abc016d2b25b0 /zookeeper-server
parent286ff1b50c40b50ab59ea2487e66c1cfae258384 (diff)
Split out a class that takes care of running ZooKeeper server
Need this to simplify the way this will be done when we start supporting dynamic reconfiguration of ZooKeeper cluster
Diffstat (limited to 'zookeeper-server')
-rw-r--r--zookeeper-server/zookeeper-server-3.5.6/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperServerImpl.java41
-rw-r--r--zookeeper-server/zookeeper-server-3.5.6/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperRunner.java56
2 files changed, 63 insertions, 34 deletions
diff --git a/zookeeper-server/zookeeper-server-3.5.6/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperServerImpl.java b/zookeeper-server/zookeeper-server-3.5.6/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperServerImpl.java
index ee3695b02f8..3c42d881ecc 100644
--- a/zookeeper-server/zookeeper-server-3.5.6/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperServerImpl.java
+++ b/zookeeper-server/zookeeper-server-3.5.6/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperServerImpl.java
@@ -1,55 +1,28 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.zookeeper;
import com.google.inject.Inject;
import com.yahoo.cloud.config.ZookeeperServerConfig;
import com.yahoo.component.AbstractComponent;
-import com.yahoo.security.tls.TransportSecurityUtils;
-
-import java.util.logging.Level;
-
-import static com.yahoo.vespa.defaults.Defaults.getDefaults;
-import static com.yahoo.vespa.zookeeper.Configurator.zookeeperServerHostnames;
/**
- * Writes zookeeper config and starts zookeeper server.
+ * Main component controlling startup and stop of zookeeper server
*
* @author Ulf Lilleengen
* @author Harald Musum
*/
-public class VespaZooKeeperServerImpl extends AbstractComponent implements Runnable, VespaZooKeeperServer {
- private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(VespaZooKeeperServerImpl.class.getName());
- private final Thread zkServerThread;
- private final ZookeeperServerConfig zookeeperServerConfig;
+public class VespaZooKeeperServerImpl extends AbstractComponent implements VespaZooKeeperServer {
+
+ private final ZooKeeperRunner zooKeeperRunner;
@Inject
public VespaZooKeeperServerImpl(ZookeeperServerConfig zookeeperServerConfig) {
- this.zookeeperServerConfig = zookeeperServerConfig;
- new Configurator(zookeeperServerConfig).writeConfigToDisk(TransportSecurityUtils.getOptions());
- zkServerThread = new Thread(this, "zookeeper server");
- zkServerThread.start();
- }
-
- private void shutdown() {
- zkServerThread.interrupt();
- try {
- zkServerThread.join();
- } catch (InterruptedException e) {
- log.log(Level.WARNING, "Error joining server thread on shutdown", e);
- }
- }
-
- @Override
- public void run() {
- String[] args = new String[]{getDefaults().underVespaHome(zookeeperServerConfig.zooKeeperConfigFile())};
- log.log(Level.INFO, "Starting ZooKeeper server with config file " + args[0] +
- ". Trying to establish ZooKeeper quorum (members: " + zookeeperServerHostnames(zookeeperServerConfig) + ")");
- org.apache.zookeeper.server.quorum.QuorumPeerMain.main(args);
+ this.zooKeeperRunner = new ZooKeeperRunner(zookeeperServerConfig);
}
@Override
public void deconstruct() {
- shutdown();
+ zooKeeperRunner.shutdown();
super.deconstruct();
}
diff --git a/zookeeper-server/zookeeper-server-3.5.6/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperRunner.java b/zookeeper-server/zookeeper-server-3.5.6/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperRunner.java
new file mode 100644
index 00000000000..a8c54ef1c98
--- /dev/null
+++ b/zookeeper-server/zookeeper-server-3.5.6/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperRunner.java
@@ -0,0 +1,56 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.zookeeper;
+
+import com.google.inject.Inject;
+import com.yahoo.cloud.config.ZookeeperServerConfig;
+import com.yahoo.component.AbstractComponent;
+import com.yahoo.security.tls.TransportSecurityUtils;
+
+import java.util.logging.Level;
+
+import static com.yahoo.vespa.defaults.Defaults.getDefaults;
+import static com.yahoo.vespa.zookeeper.Configurator.zookeeperServerHostnames;
+
+/**
+ * Writes zookeeper config and starts zookeeper server.
+ *
+ * @author Ulf Lilleengen
+ * @author Harald Musum
+ */
+public class VespaZooKeeperServerImpl extends AbstractComponent implements Runnable, VespaZooKeeperServer {
+ private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(VespaZooKeeperServerImpl.class.getName());
+ private final Thread zkServerThread;
+ private final ZookeeperServerConfig zookeeperServerConfig;
+
+ @Inject
+ public VespaZooKeeperServerImpl(ZookeeperServerConfig zookeeperServerConfig) {
+ this.zookeeperServerConfig = zookeeperServerConfig;
+ new Configurator(zookeeperServerConfig).writeConfigToDisk(TransportSecurityUtils.getOptions());
+ zkServerThread = new Thread(this, "zookeeper server");
+ zkServerThread.start();
+ }
+
+ private void shutdown() {
+ zkServerThread.interrupt();
+ try {
+ zkServerThread.join();
+ } catch (InterruptedException e) {
+ log.log(Level.WARNING, "Error joining server thread on shutdown", e);
+ }
+ }
+
+ @Override
+ public void run() {
+ String[] args = new String[]{getDefaults().underVespaHome(zookeeperServerConfig.zooKeeperConfigFile())};
+ log.log(Level.INFO, "Starting ZooKeeper server with config file " + args[0] +
+ ". Trying to establish ZooKeeper quorum (members: " + zookeeperServerHostnames(zookeeperServerConfig) + ")");
+ org.apache.zookeeper.server.quorum.QuorumPeerMain.main(args);
+ }
+
+ @Override
+ public void deconstruct() {
+ shutdown();
+ super.deconstruct();
+ }
+
+}