在过去的单库单表型系统中,通常第可以使用数据库字段自带的auto_ increment
属性来自动为每条记录生成个唯一的ID
。但是分库分表后,就无法在依靠数据库的auto_ increment
属性来唯一标识一条记录了。此时我们就可以用zookeeper
在分布式环境下生成全局唯一ID
。
设计思路:
- 连接zookeeper服务器;
- 指定路径生成临时有序节点;
- 取序列号及为分布式环境下的唯一ID。
public class IdGenerate {
// zk的连接串
private static final String IP = "192.168.133.133:2181";
// 计数器对象
private static CountDownLatch countDownLatch = new CountDownLatch(1);
// 连接对象
private static ZooKeeper zooKeeper;
public static String generateId() t