分布式系统全局唯一ID的几种实现方式( 二 )


缺点:依赖于JDK,只适合单机环境
7、Redis的INCRBY操作简介:熟悉这个命令的应该都知道它是啥意思,不知道的 自己打开redis-cli执行下该命令就可以了!
优点:可行,分布式场景下是适用的;
缺点:基本上没想到有啥缺陷,如果要挑刺的话,那就是依赖于中间件服务,如果Redis挂掉,那基本上该ID生成服务就不可用了(其实,这有点杠的嫌疑哈,年轻人 不要搞内斗哈 ~ 你不会做Redis集群部署保证其高可用吗?)
 8、基于ZooKeeper的节点版本号生成ID简介:这个大家可能有点陌生,其实就是利用ZooKeeper底层树形节点ZNode(类似于windows的文件目录数)的有序性,循环不断生成其对应的版本号或者节点本身的数据
优点:可行,分布式场景下是适用的;
缺点:基本上没想到有啥缺陷,跟第七点类似吧,需要保证ZK服务的高可用即可
啰里啰嗦介绍了这么多,接下来咱们还是得进入代码实战,其中的场景可以暂设定为:生成全局唯一的、数据格式为:yyyyMMddHHmmss + N位的数值码(N=4或者N=6比较常见),其中要求最终生成的码全局唯一、有序且最好有一定的业务意义,那废话少说,咱们直接开干吧!


推荐阅读