我是靠谱客的博主 轻松海燕,最近开发中收集的这篇文章主要介绍纯数字id 不重复没规则_架构设计篇-全局唯一id设计方案,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、概述

在应用程序中,很多时候会用到全局唯一的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设计方案所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部