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