服务器动态上下线监听案例
需求:某分布式系统中,主节点可以有多台,可以动态上下线,任意一台客户端都能实时感知到主节点服务器的上下线。
实现:
先在集群上创建/servers 节点
[zk: localhost:2181(CONNECTED) 10] create /servers "servers"
Created /servers
客户端代码如下
public class DistributeClient {
// 注意逗号左右不能有空格
private String connectString = "hadoop113:2181,hadoop114:2181,hadoop115:2181";
private int sessionTimeout = 2000;
ZooKeeper zkClient;
public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
// 1、获取zk连接
DistributeClient client = new DistributeClient();
client.getConnect();
// 2、监听/servers下面节点的增加和删除
client.getServerList();
// 3、业务逻辑(sleep)
client.business();
}
private void business() throws InterruptedException {
Thread