分布式下的主键生成

来源:18-1 课程总结

qq_郭靖_03148326

2019-11-17

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

写回答

1回答

大目

2019-11-17

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
4
大目
回复
_Guess
对mysql而言确实是的。 因为mysql的索引结构,导致用uuid的话,会有非常多的随机读,性能比较差。
2020-03-11
共4条回复

Spring Cloud Alibaba微服务从入门到进阶

面向未来微服务:熟练掌握Spring Cloud Alibaba

3083 学习 · 1324 问题

查看课程