概述
一、概述
在应用程序中,很多时候会用到全局唯一的id,比如用户id,典型的如QQ号,比如订单id等等,因此在架构设计中,全局唯一的id生成服务作为公共基础服务是整个项目的基石之一。然而,设计一个满足不重复、高性能、高可用的分布式id服务并不容易。
不重复:需要保证在整个服务的生命周期内不会出现重复。
高性能:在满足自身业务需要的情况下,如果可以,尽量提供更高的性能,以利于业务的长期发展。
高可用:因为此服务是整个业务的基础服务,或者以模块的形式作为基础能力提供给其他服务,因此其高可用性直接影响到整个业务的高可用性,因此在必须保证服务的高可用。
二、设计方案
1、UUID方案
UUID是通用唯一识别码(Universally Unique Identifier)的缩写,基于当前时间、计数器(counter)和硬件标识(通常为网卡的MAC地址)等数据计算生成的,因此可以做到全局唯一。Java本身提供UUID类,因此使用UUID可以满足不重复、高性能、高可用三方面的要求。
优点:1)使用简单方便。2)基于jdk的能力,且生成过程不存在阻塞,天然满足了高性能和高可用的要求。
缺点:1)无序,如果业务中对id有顺序要求,如趋势递增,则无法满足。2)id为数字和英文字母组合,对于只需要纯数字的场景,则无法满足。3)长度为128bit,对长度有要求的
最后
以上就是轻松海燕为你收集整理的纯数字id 不重复没规则_架构设计篇-全局唯一id设计方案的全部内容,希望文章能够帮你解决纯数字id 不重复没规则_架构设计篇-全局唯一id设计方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复