高并发网站的自增主键如何防止出现重复情况?

比如说新浪微博的微博id,注册用户的用户uid,百度贴吧的帖子号tid等等我观察过都是按照发布时间呈现递增关系,但是我很好奇这种高并发网站一般都是分布式数据库,数据库之前肯定还有缓存,消息队列等中间件,那么如何保证最终插入多个数据库时他们之间主键自增的情况下不出现重复?

而且现在也有很多碰撞概率较低的随机id生成算法为什么没有被这些高并发网站所采用?是否是效率原因?

阅读 5.3k
2 个回答

我准备开始胡说了。。。。

系统是从无到有,由小到大的居多。

一开始钱少事多时间紧,自然什么事官方支持,什么是简单好维护的就用什么。后期转换成本高,风险大,收益又低的话,谁会去整这些有的没的。

其次,高并发,大多数都不会是并发写。

最后,就算遇到你说的情况,那么起个发号器,发自增id也可以的。好了现在的问题是,如何起一个分布式的发号器了。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题