“谈谈常用的分布式ID设计方案”!
一个工作了7年的同学,被问到了这样一个问题。
问题并不难,但是在实际面试的时候,如果只是回答1,2,3,很难通过面试,因为作为一个高级程序员,还需要有自己的理解和思考。
这个问题的高手回答,我整理到了15W字的面试文档里面
大家可以私信我发送【Mic】领取。
下面看看高手的回答
首先,分布式全局ID的的解决方案有很多,比如:
这些方案只是解决基础的id唯一性问题,在实际生产环境中,需要构建一个全局唯一id还需要考虑更多的因素:
因此,在如果我们选择数据库的全局表,你每获取一次id就需要更新数据库,性能上限比较明显,而且基于数据库构建高扩展和高性能的解决方案难度很大。
所以,目前市面上主流的解决方案是基于Twitter早期开源的Snowflake雪花算法。
它是由64位长度组成的全局id生成算法,通过对64位进行区间划分来表述不同含义实现唯一性。
它的好处是:
另外,美团公司开源了一个全局唯一id生成系统leaf,它里面也用到了雪花算法去构建全局唯一id并且在高性能和高可用方面,做了很多的优化,为美团内部业务提供了每天上亿次的调用。
很明显这是一个热点问题,并且在实际应用中也比较广泛。
建议各位粉丝在这个领域做一些更深层次的思考和研究,从而去应对面试官更进一步的追问。
记住,全局ID本身的设计方案和实现细节是很重要的。
大家记得点赞收藏加关注!!
需要高手面试文档(附赠大厂内部十万字面试文档)或者有不懂的技术面试题想咨询的小伙伴可以后台私信【Mic】或者评论区留言。
留言与评论(共有 0 条评论) “” |