package com.jthink.skyeye.trace.registry; import com.jthink.skyeye.base.constant.Constants; import com.jthink.skyeye.trace.dto.RegisterDto; import com.jthink.skyeye.trace.generater.IdGen; import com.jthink.skyeye.trace.generater.IncrementIdGen; import org.I0Itec.zkclient.ZkClient; /** * JThink@JThink * * @author JThink * @version 0.0.1 * @desc 利用zookeeper实现注册中心 * @date 2017-03-23 10:14:22 */ public class ZookeeperRegistry implements Registry { /** * 向注册中心进行注册,生成该服务的编号并返回 * @param registerDto * @return */ @Override public String register(RegisterDto registerDto) { String host = registerDto.getHost(); String app = registerDto.getApp(); // 向注册中心注册 ZkClient zkClient = registerDto.getZkClient(); zkClient.createPersistent(Constants.ZK_REGISTRY_SERVICE_ROOT_PATH + Constants.SLASH + app, true); IdGen idGen = new IncrementIdGen(registerDto); String id = idGen.nextId(); zkClient.createEphemeral(Constants.ZK_REGISTRY_SERVICE_ROOT_PATH + Constants.SLASH + app + Constants.SLASH + host, id); return id; } }