StackOverflow / StackExchange如何生成唯一的整数ID?

时间:2015-03-27 14:32:24

标签: uniqueidentifier

我正在寻找一种为我的客户生成唯一整数ID的方法,非常类似于StackOverflow / StackExchange为每个问题生成一个ID。由于使用了多个数据库,因此挑战在于使这个数字在分布式系统中是唯一的,这意味着auto increment功能无法工作。

我必须假设像StackOverflow / StackExchange这样的大型网站是分布式的,所以我非常想知道如何在没有任何冲突的情况下生成一个唯一的整数。

从我所看到的,两种实现方式是Flickr的票务服务器方法,但这会产生单点故障,或Twitter的Snowflake,但会产生64位数,而StackOverflow似乎要小得多。

1 个答案:

答案 0 :(得分:0)

您的操作系统很可能有一些方法可以做到这一点。例如,在iOS或MacOS X上,您只需在NSUUID中调用一个方法;其他人会有类似的东西。这给你122个随机位。如果你坚持使用整数,我会把它分成两个64位整数。具有122个随机位实际上保证了唯一性。