Seata内置了一个分布式UUID生成器,用于辅助生成全局事务ID和分支事务ID。具体如下特点:
- 高性能
- 全局唯一
- 趋势递增
这个分布式UUID生成器是基于雪花算法进行改良的,本文针对改良的方法、目的等进行总结
改良点
改良版雪花算法的实现原理参考如下:文章来源:https://www.toymoban.com/news/detail-631619.html
- Seata基于改良版雪花算法的分布式UUID生成器分析
- 关于新版雪花算法的答疑
改良版的雪花算法,主要做出如下3点改变
:文章来源地址https://www.toymoban.com/news/detail-631619.html
- 时间戳不再时刻追随系统时钟。
- 节点ID和时间戳互换位置。
改成:
- 调整了节点ID的生成策略:
- 原版在用户未手动指定节点ID时,会截取本地IPv4地址的低10位作为节点ID。 在实践生产中,发现有零散的节点ID重复的现象(多为采用k8s部署的用户)
- 改为优先从本机网卡的MAC地址截取低10位,若本机未配置有效的网卡,则在[0, 10
到了这里,关于JAVA实用工具: 改良版雪花算法-分布式唯一ID神器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!