分布式ID是什么?有哪些解决方案?

在开发中,我们通常会需要一个唯一ID来标识数据,如果是单体架构我们可以通过数据库的主键,或直接在内存中维护一个自增数字来作为ID都是可以的,但对于一个分布式系统,就会有可能会出现ID冲突,此时有以下解决方案:

1.uuid,这种方案复杂度最低,但是会影响存储空间和性能

2.利用单机数据库的自增主键,作为分布式ID的生成器,复杂度适

中,ID长度较之uuid更短,但是受到单机数据库性能的限制,并发量大的时候,

此方案也不是最优方案

3.利用redis、zookeeper的特性来生成id,比如redis的自增命令、Dokeeper的顺序节点,这种方案和单机数据库(mysql)相比,性能有所提高,可以适当选用

4.雪花算法,一切问题如果能直接用算法解决,那就是最合适的,利用雪花算法也可以生成分布式ID,底层原理就是通过某台机器在某一毫秒内对但是只能保证趋势递增。业界存在tinyid、leaf等开源中间件实现了雪花算法某一个数字自增,这种方案也能保证分布式架构中的系统id唯一。

相关推荐
weisian1513 小时前
Java并发编程--45-分布式一致性协议入门:Raft、Paxos与ZAB的核心思想
java·分布式·raft·paxos·zab
juniperhan5 小时前
Flink 系列第17篇:Flink Table&SQL 核心概念、原理与实战详解
大数据·数据仓库·分布式·sql·flink
卢傢蕊6 小时前
FastDFS 分布式存储
分布式·fastdfs
菜鸟小码8 小时前
Hadoop大数据时代的底座和基石
大数据·hadoop·分布式
珠海西格电力9 小时前
零碳园区管理系统如何守护能源与数据安全?
大数据·人工智能·分布式·架构·能源
weisian1519 小时前
Java并发编程--44-分布式限流:令牌桶与漏桶算法在网关层的落地
java·分布式·令牌桶算法·漏桶算法·固定窗口算法·滑动窗口算法
想你依然心痛13 小时前
HarmonyOS 6(API 23)分布式实战:基于悬浮导航与沉浸光感的“光影协创“跨设备白板系统
分布式·wpf·harmonyos·悬浮导航·沉浸光感
立莹Sir15 小时前
商品中台架构设计与技术落地实践——基于Spring Cloud微服务体系的完整解决方案
分布式·后端·spring cloud·docker·容器·架构·kubernetes
人道领域15 小时前
【Redis实战篇】初步基于Redis实现的分布式锁---基于黑马点评
java·数据库·redis·分布式·缓存
buhuimaren_21 小时前
FastDFS分布式存储
分布式