请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

分布式下的主键生成

分布式下的主键生成器,有什么好推荐的么?
如果用了雪花算法生成,排序怎么做呢?

正在回答 回答被采纳积分+3

1回答

大目 2019-11-17 23:29:46

Snowflake算法是有顺序的,可以了解一下。

分布式下的主键生成,有很多的玩法:

  1. UUID,最简单偷懒的玩法

  2. Snowflake类算法,例如:Snowflake、百度uid-generator等;

  3. 靠规划解决问题:比如初期已经规划好了,未来会分3个数据库,那么对于一张表,例如User,就可以做一个取模,数据库1从1自增,数据库2从2自增,数据库3从3 自增,步长都设为3。这样,数据库1的id就是147以此类推,数据库2是258一次类推,数据库3是369一次类推。

  4. 也有一些公司采用专门的序列发生器,实现自增的id,例如弄个redis计数器。

总之,这个看各个项目的选择,另外常常也都是结合自身遇到的问题去选择的。单纯问分布式下场景下的主键生成没有太大意义。

祝您学习愉快!

1 回复 有任何疑惑可以回复我~
  • _Guess #1
    请问老师实际工作中用到的推荐的分布式主键生成方式是什么呢?
    回复 有任何疑惑可以回复我~ 2020-03-11 00:53:20
  • 大目 回复 _Guess #2
    上面说的都可以哈,没有固定套路的。
    回复 有任何疑惑可以回复我~ 2020-03-11 01:01:08
  • _Guess 回复 大目 #3
    谢谢老师回复,《阿里新零售数据库设计与实战》这个课里老师不建议用UUID,认为性能比较低,可以使用Mycat生成自增ID。
    回复 有任何疑惑可以回复我~ 2020-03-11 01:05:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信