Curator分布式锁之生成流水号
在分布式系统中,为了保证数据的一致性,往往需要进行同步控制,比如减库存、唯一流水号生成等。Curator对Zookeeper进行了封装,实现了分布式锁的功能,提供了线程的同步控制。同时,Curator也提供了多种锁机制。下面对通过时间戳生成流水号的场景进行逐步分析。 普通示例 先看一个简单的程序: package com.secbro.learn.curator; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by zhuzs on 2017/5/4. */ public class CreateOrderNo { public static void main (String[] args) { for ( int i= 0 ; i< 10 ; i++){ SimpleDateFormat sdf = new SimpleDateFormat( "yyyyDDmm HH:mm:ss|SSS" ); String orderNo = sdf.format( new Date()); System.out.println(orderNo); } } } 以上代码通过一个循环连续打印出10个时间戳。这里没有使用多线程,但分析下面的打印结果就会发现,其实在同一时刻会生成多个相同的流水号