分布式解决方案---分布式ID

目录

是什么

特点

全局唯一

高并发

高可用

怎么做

实现方案


是什么

分布式ID是指在分布式系统中生成的唯一标识符。由于分布式系统的特点,多个节点可能会同时生成ID,因此需要确保每个ID在整个系统中是唯一的。

重点就是唯一性!!!!

特点

全局唯一

高并发

高可用

怎么做

  1. UUID

    1. 缺点:长 占用空间大 无序的放到数据库做id索引性能下降

    2. java实现

      复制代码
          public static void main(String[] args) {
              // 生成随机UUID
              UUID uuid = UUID.randomUUID();
      
              // 将UUID转换为字符串
              String uuidString = uuid.toString();
      
              // 输出UUID
              System.out.println("生成的UUID: " + uuidString);
          }
  2. 数据库主键自增

    1. 缺点:并发性能不高,分库分表比较麻烦,自增泄露数据库数据量
  3. Redis自增

    1. 缺点:自增泄露数据量, 不够稳定,会造成数据丢失,redis负载过高的情况下造成ID生成速度慢
  4. 雪花算法

    1. 缺点:时钟回拨(可以解决,选用)

实现方案

推荐 美团Leaf

相关推荐
Frank_refuel11 小时前
分布式RPC框架实战(二):服务端模块划分与底层设计
分布式·网络协议·rpc
mftang1 天前
EtherCAT协议:从“飞读飞写”机制到分布式时钟同步的实时以太网架构深度解析
分布式·架构·ethercat·分布式时钟·从站控制器
ShineWinsu1 天前
对于Redis:Hash类型的解析
c++·redis·分布式·缓存·面试·hash·哈希表
东方芷兰1 天前
Agent 技术摘要 03 —— 基座模型、推理模型、Flash、联邦学习、分布式机器学习
人工智能·分布式·机器学习
程序猿乐锅2 天前
【黑马点评 | 第十一篇】关注 Feed 流实现
java·数据库·redis·分布式·后端·缓存·maven
j7~2 天前
【C++标准项目】C++基于protobuf的发布订阅式消息队列(篇一):项目概述+环境搭建
分布式·消息队列·rabbitmq·gtest·protobuf·muduo·sqlites
今年下半年2 天前
【Spring Boot】多种存储文件(FastDFS / MinIO / 阿里云 OSS)接入设计说明(附源码)
spring boot·分布式·中间件·简单工厂模式·策略模式
ShineWinsu2 天前
对于Redis:string类型的解析
java·c++·redis·分布式·缓存·面试·string
仍然.2 天前
RabbitMQ---可靠性传输
网络·分布式·rabbitmq
灯澜忆梦3 天前
【RabbitMQ #13】 | 延迟消息
分布式·rabbitmq·ruby