You need to sign in or sign up before continuing.
Commit 35652575 authored by Ali Saeed's avatar Ali Saeed

Update onElectedToBeLeader function to register as coordinator and store it's IP address

parent 22c7eed5
......@@ -14,8 +14,8 @@ public class ServiceRegistry implements Watcher {
private static final Logger logger = LoggerFactory.getLogger(ServiceRegistry.class);
private static final String REGISTRY_ZNODE = "/service_registry";
private static final String COORDINATOR_ZNODE = "/cordinator";
private final ZooKeeper zooKeeper;
private String currentZnode = null;
private static List<String> allServiceAddresses = null;
......@@ -26,6 +26,7 @@ public class ServiceRegistry implements Watcher {
public ServiceRegistry(ZooKeeper zooKeeper) {
this.zooKeeper = zooKeeper;
createServiceRegistryZnode();
createCoordinatorZnode();
}
private void createServiceRegistryZnode() {
......@@ -39,6 +40,17 @@ public class ServiceRegistry implements Watcher {
e.printStackTrace();
}
}
private void createCoordinatorZnode() {
try {
if (zooKeeper.exists(COORDINATOR_ZNODE, false) == null) {
zooKeeper.create(COORDINATOR_ZNODE, new byte[]{}, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
}
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void registerToCluster(String metadata) throws KeeperException, InterruptedException {
if (this.currentZnode != null) {
......@@ -51,6 +63,12 @@ public class ServiceRegistry implements Watcher {
// System.out.println("Registered to service registry");
logger.debug("Registered to service registry");
}
public void registerToClusterAsCoordinator(String metadata) throws KeeperException, InterruptedException {
zooKeeper.create(COORDINATOR_ZNODE + "/C_", metadata.getBytes(),
ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
logger.debug("Register to cluster as coordinator");
}
public void registerForUpdates() {
try {
......@@ -62,6 +80,7 @@ public class ServiceRegistry implements Watcher {
}
}
public void unregisterFromCluster() {
try {
if (currentZnode != null && zooKeeper.exists(currentZnode, false) != null) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment