使用zookeeper实现命名服务,生成系统唯一id.
算法流程图:
算法步骤比较简单:
1.创建持久的顺序节点
2.获取返回的节点名称,提取ID
3.按需删除节点(防止创建大量的持久节点)
代码:
package com.zk.nameservice;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.I0Itec.zkclient.ZkClient;
import org.I0Itec.zkclient.exception.ZkNodeExistsException;
import org.I0Itec.zkclient.serialize.BytesPushThroughSerializer;
public class IdMaker {
private ZkClient client = null;
private final String server;
private final String root;
private final Strin