全局的唯一流水ID 可以将一个请求在分布式系统中的流转路径聚合。生成唯一ID有两种方法:
- 持久型: 使用数据库表自增字段或者Sequence 生成,为了提高效率,每个应用节点可以缓存一个批次的ID ,如果机器重启则可能会损失一部分ID ,但是这并不会产生任何问题。
- 时间型:一般由机器号、业务号、时间、单节点内自增D 组成,由于时间一般精确到秒或者毫秒,因此不需要持久就能保证在分布式系统中全局唯一、粗略递增等。
不太建议使用UUID来生成,UUID的生成与机器的MAC有关,极限情况能可能会有问题。
Vesta是一款通用的ID产生器,互联网俗称统一发号器,它具有全局唯一、粗略有序、可反解和可制造等特性,参看项目: