思路图示分析
Server.java
package com.lagou.zk.onoffline;
import org.I0Itec.zkclient.ZkClient;
//服务端提供client需要的要给时间查询服务,服务端向zk建立临时节点
public class Server {
//创建ZK
ZkClient zkClient = null;
private void connectZk(){
zkClient = new ZkClient("centos7-1:2181,centos7-2:2181");
if (!zkClient.exists("/servers")){
zkClient.createPersistent("/servers");
}
}
//告知zk服务器相关信息
private void saveServerInfo(String ip,String port){
String sequencePath = zkClient.createEphemeralSequential("/servers/server", ip + ":" + port);
System.out.println("服务器:"+ip+":"+port+"向zk保存信息成功,成功上线可以接受client查询");
}
public static void main(String[] args) {
//准备两个服务器启动上线(多线程模拟,一个线程代表一个服务器)
Server server = new Server();
server.connectZk();
server.saveServerInfo(args[0],args[1]);
//创建一个线程类,可以接受socket请求
new TimeService(Integer.parseInt(ar