1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Merge pull request #992 from IsCHANo/patch-1

Update 分布式id生成方案总结.md
This commit is contained in:
SnailClimb 2020-11-20 22:02:57 +08:00 committed by GitHub
commit 71ed90c4d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -99,7 +99,7 @@ update id_generator set current_max_id=#{newMaxId}, version=version+1 where vers
因为newMaxId是DistributIdService中根据oldMaxId+步长算出来的只要上面的update更新成功了就表示号段获取成功了。
为了提供数据库层的高可用需要对数据库使用多主模式进行部署对于每个数据库来说要保证生成的号段不重复这就需要利用最开始的思路再在刚刚的数据库表中增加起始值和步长比如如果现在是两台Mysql那么 mysql1将生成号段1,1001]自增的时候序列为13457.... mysql1将生成号段2,1002]自增的时候序列为246810...
为了提供数据库层的高可用需要对数据库使用多主模式进行部署对于每个数据库来说要保证生成的号段不重复这就需要利用最开始的思路再在刚刚的数据库表中增加起始值和步长比如如果现在是两台Mysql那么 mysql1将生成号段1,1001]自增的时候序列为1357.... mysql1将生成号段2,1002]自增的时候序列为246810...
更详细的可以参考滴滴开源的TinyId[github.com/didi/tinyid…](https://github.com/didi/tinyid/wiki/tinyid原理介绍)