分布式下的主键是怎么生成的
作者:大军
来源:SegmentFault 思否
数据库主键自增长
虽然避免了ID重复,但是id的递增是没有办法保证的,比如数据库1的id是1,4,7,10。数据库2的id是2,5,数据库3的id是3。而且后面如果要扩容,也是很麻烦。
缺点就是又多了一层服务。取一个自增长id要缓存服务+数据库。
除了数据库的压力,自增长的主键还可能泄露商业机密,别人很容易拆到下一个主键是什么。
UUID
时间戳
snowflake
缺点也很明显,由于这个算法是依赖时间戳的,所以当系统的时间回拨的时候,就可能造成id的重复。
评论