分布式 ID 方案选择在当今分布式系统日益盛行的背景下,分布式 ID 生成方案的选择成为了众多开发者关注的焦点。一个优秀的分布式 ID 方案,不仅能够确保生成的 ID 全局唯一,避免数据冲突,还能在高并发、大规模的分布式环境中保持高性能、高可用性,同时兼顾易用性和可扩展性。以下将从多个维度对比分析几种主流的分布式 ID 生成方案,以期为实际业务场景中的选择提供参考。一、基于数据库的方案(一)数据库
ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是随着公司的业务发展,数据量将越来越大,需要对 ...
转载
2021-07-28 08:15:00
125阅读
2评论
数据可靠+负载均衡:主从复制 + 分库分表 一、主从复制原理解析: 从库生成两个线程,一个 I/O 线程,一个 SQL 线程; I/O 线程去请求主库的 binlog,并将得到的 binlog 日志写到 relay log(中继日志) 文件中; 主库会生成一个 log dump 线程,用来给从库 I/O 线程传 binlog; SQL 线程会读取 relay log
开发十年,就只剩下这套Java开发体系了 >>> 在游戏开发中,我们使用分布式ID。有很多优点 便于合服 便于ID管理 等等 一、单服各自ID系统的弊端 1. 列如合服 &nbs
转载
2018-11-16 11:52:00
107阅读
一、前言分布式系统中我们会对一些数据量大的业务进行分拆,如:用户表,订单表。因为数据量巨大一张表无法承接,就会对其进行分库分表。但一旦涉及到分库分表,就会引申出分布式系统中唯一主键ID的生成问题,永不迁移数据和避免热点的文章中要求需要唯一ID的特性:整个系统ID唯一ID是数字类型,而且是趋势递增的ID简短,查询效率快什么是递增? 如:第一次生成的ID为12,下一次生成的ID是13,再下一次生成的I
转载
2021-04-01 16:53:06
291阅读
一、前言 分布式系统中我们会对一些数据量大的业务进行分拆,如:用户表,订单表。因为数据量巨大一张表无法承接,就会对其进行分库分表。 但一旦涉及到分库分表,就会引申出分布式系统中唯一...
转载
2021-03-31 09:03:00
308阅读
2评论
介绍ID生成和分布式的方案的文章已经非常非常多了,比如文末中的参考资料中的文章,所以我在本文中简洁的汇总各个方案的优缺点,然后介绍一个分布式的ID生成器项目rpcxio/did,它可以实现单节点百万级...
转载
2021-06-21 17:02:27
191阅读
分布式ID解决方案
转载
2021-07-21 21:13:00
210阅读
2评论
(Universally Unique Identifier),通用唯一识别码。UUID是基于当前时间、计数器(co
原创
2023-03-26 17:50:47
111阅读
分布式id生成方案uuid 1,当前日期和时间 时间戳 2,时钟序列。 计数操作,导致频繁的页.
原创
2022-12-07 10:31:55
94阅读
分布式ID生成方案 朱门酒肉臭,路有冻死骨。 简介 对于单体项目,主键 ID 常用主键自动的方式进行设置。但是在分布式系统中,分库分表之后就不行了,如果还采用简单数据库主键ID自增的方式,就会出现同一ID在不同数据库的情况。常见分布式ID生成方案:UUID、号段模式、Redis 实现、雪花算法(Sn
原创
2022-12-24 05:45:09
120阅读
uuid UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。 UUID由以下几部分的组合: UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。 时钟序列。 全局唯一的IEEE机器识别号,如果有网卡,从网卡M ...
转载
2021-11-04 11:08:00
125阅读
2评论
分布式ID设计方案package com.example.core.mydemo.thread;
import java.util.UUID;
public class IDTest {
public static void main(String[] args) {
String uuid = UUID.randomUUID().toString();
不管我们是不是有身份的人,我们一定是有身份证的人,身份证上面的号码就是我们的ID,理论上这个ID是全国唯一的,而且通过这个号码,我们还可以得到一些个人信息,比如前两位可以确定我们第一次申请身份证的时候所在的省份、接下来的四位可以确定我们所在的区县,然后还可以知道我们出生的年月以及性别。在我们的计算机应用中,也处处存在的ID, 比如订单编号、商品ID、微博ID、微信消息ID、书的ISDN号、商品条码
转载
2021-03-28 10:38:22
324阅读
一、分布式唯一ID的需求产生的背景在分布式集群环境环境中,大量的业务场景需要使用到唯一ID的情况,如用户需要唯一身份标识、商品需要唯一标识、消息需要唯一标识、事件需要唯一标识等,都需要全局唯一ID,尤其是复杂的分布式业务场景中全局唯一ID更为重要那么,分布式唯一ID有哪些特性或要求呢?① 唯一性:生成的ID全局唯一,在特定范围内冲突概率极小。 ② 有序性:生成的ID按某种规则有序,便于数据库插入及
本文内容参考网络,侵删本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h2pl/Java-Tutorial喜欢的话麻烦点下Star哈文章首发于我的个人博客:www.how2playlife.com该系列博文会告诉你什么是分布式系统,这对后端工程师来说是很重要的一门学问,我们会逐步了解常见的分布式技术、以及一些较为常
转载
2019-11-19 22:29:03
274阅读
分布式ID生...
转载
2021-07-21 11:23:47
190阅读
目录分布式id要考虑的问题常见实现方案uuid数据库主键自增号段模式借助redis的自增操作雪花算法snowflake百度开源的 uid-generator美团开源的Leaf滴滴开源的tinyid 分布式id要考虑的问题全局唯一高可用:确保任何时候都能正确生成id高性能:id生成响应要快、低延时,否则反倒会成为业务瓶颈简单易用:在设计和实现上要尽可能的简单,拿来即用是否需要是有序递增、需要包含日期时间等特殊部分:具体看业务场景 常见实现方案uuid数据库主键自
原创
2021-09-07 15:59:27
444阅读
常见的分布式 ID 方案方案描述优点缺点UUIDUUID 是通用的位移标识码的缩写,其目的是让分布式系统中的所有元素都有位移的辨识信息,而不需要通过中央控制器来指定位移标识。1.降低全局节点的压力,使得主键生成速度更快;2. 生成的主键全局唯一;3.跨服务器合并数据方便;1.UUID 占用 16 个字符,空间占用较多;2.不是递增有序的数字,数据写入 IO 随机性很大,切索引效率下降。数据库主键自
原创
2023-08-09 19:36:59
0阅读
什么是分布式 ID 在分布式系统中,经常需要一些全局唯一的 ID 对数据、消息、http 请求等进行唯一标识。那么这个全局唯一 ID 就叫分布式 ID 为什么需要分布式 ID 如果 id 我们使用的是数据库的自增长类型,在分布式系统中需要分库和分表时,会有两个相同的表,有可能产生主键冲突,电商订单号
原创
2021-10-02 14:58:00
152阅读