温州网站设计,韩国世界杯出线几次,改版网站收费,营业执照网上申请什么是分布式ID
分布式ID是指在分布式系统中生成的特定范围内唯一的标识符#xff0c;如订单号、商品ID、链路追踪TraceID。
随着业务发展#xff0c;对分布式ID的要求越来越高#xff0c;其中最基本的要求如下
全局唯一#xff1a;在任何节点、任何时间生成的ID都必须是…什么是分布式ID
分布式ID是指在分布式系统中生成的特定范围内唯一的标识符如订单号、商品ID、链路追踪TraceID。
随着业务发展对分布式ID的要求越来越高其中最基本的要求如下
全局唯一在任何节点、任何时间生成的ID都必须是唯一的高性能分布式ID的生成速度要快对本地资源消耗小高可用生成分布式ID的服务要保证可用性接近于100%方便易用拿来即用方便业务快速接入。
有哪些技术实现
1、数据库自增ID
原理基于数据库的auto_increment实现ID自增
优点
实现简单ID单调自增。
缺点
性能较差不适合高并发场景。
适用场景
小型分布式系统要求ID连续自增。
2、Redis自增
原理利用Redis的INCR命令生成自增ID。
优点
简单高效适合小规模分布式系统。
缺点
依赖Redis存在单点风险可通过Redis集群缓解。扩展性有限。
适用场景对性能要求高且规模较小的场景如分布式锁的唯一标识
3、UUID
原理UUID即通用识别码是基于时间戳、MAC地址、随机数等生成128位的字符串如550e8400-e29b-41d4-a716-446655440000。
优点
简单易用无需协调唯一性极高。
缺点
无序导致数据库索引效率低长度较长16字节存储和传输开销大。
适用场景对唯一性要求高但对有序性和性能要求不高的场景如临时文件命名。
4、号段模式
**原理**预先分配一组连续的号段如1000020000给某个节点节点预先拉取在分配ID时 优先判断本地号段是否消耗完如果消耗完的话再从数据库中获取下一个号段。
优点
网络开销大幅减少无需处理时钟回拨、机器ID冲突等问题生成的ID是连续的适合数据库索引优化。
缺点
ID可能不连续步长设置过短的话可能会导致频繁请求数据库获取新号段造成服务器压力。
适用场景
高并发场景如秒杀系统。
5、雪花算法
原理由Twitter提出将64位ID分为以下部分
1位符号位始终为0。41位时间戳毫秒级可用约69年。10位工作机器ID5位数据中心ID 5位机器ID。12位序列号每毫秒可生成4096个ID。
需要注意的是这里的工作中心ID需要预先分配作用是区分不同的服务节点。
优点
高性能本地生成无需网络请求。趋势递增适合数据库索引。可扩展性强通过调整机器ID位数。
缺点
依赖系统时钟时钟回拨可能导致ID重复。机器ID需要预先分配可通过配置或ZooKeeper动态分配。
适用场景大多数分布式系统如订单ID、日志ID等。
6、TinyID
**原理**基于号段模式实现不过支持多数据库模式实现方式是一个主节点只生成偶数、另一个生成奇数
优点
适用于大多数分布式系统多数据库支持提高系统的可用性。
缺点
ID可能不连续
根据业务场景选型
https://mp.weixin.qq.com/s/bFDLb6U6EgI-DvCdLTq_QA