分布式主键的生成方式

分布式主键的生成方式分为中心化和去中心化两大类。中心化可以继续采用数据库生成自增主键的方式,为每个不同的分库设置不同的初始值,并将步长设置为分片的个数即可,这种方式对分片个数有依赖,一旦再次水平扩展,原有的分布式主键不易迁移。还有一种中心化生成分布式主键的方式,即采用Redis在内存中生成自增序列,但此种方式新增加了一个外部组件的依赖,一旦Redis不可用,则整个数据库将无法在插入,可用性会大大下降,另外Redis的单点问题也需要解决,部署复杂度较高。去中心化方式无需额外部署,可扩展性也很好,因此更推荐使用。UUID是去中心化生成分布式主键较为常见的一种方式,但它的主键很长,而且无序,通过主键排序时对数据库的性能影响较大,不建议使用。目前较为完美的方案是使用snowflake算法生成分布式唯一和基本有序的主键。

原文地址:https://www.cnblogs.com/yuyutianxia/p/7272066.html