[发明专利]一种分布式唯一ID生成方法在审
申请号: | 202110868307.3 | 申请日: | 2021-07-30 |
公开(公告)号: | CN113626496A | 公开(公告)日: | 2021-11-09 |
发明(设计)人: | 孙志强;徐士强;杨继伟;董玉全 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F16/2458 | 分类号: | G06F16/2458;G06F16/2453;G06F16/2455;G06F16/21;G06F16/22;G06F16/27 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 唯一 id 生成 方法 | ||
本发明公开了一种分布式唯一ID生成方法,所述方法的实现包括内容如下:利用MySql主键自增的方式,实现分布式数据ID自增,利用MySql多实例主键自增,每次获取ID时去数据库请求,获得的ID是一个ID区间段。本发明为分布式系统ID的生成提供了可靠的解决方案,适应不同的场景、需求及性能要求;完美解决了数据库的自增问题,可读性强,查询效率高,可用低延时,ID生成响应快;不存在单点问题,保证ID是全局性唯一的基本要求;高可用低延时,ID生成响应快,不会成为业务瓶颈,无限接近于100%的可用性;利用分布式锁解决了获取ID时并发问题;趋势递增,满足多种具体业务场景。
技术领域
本发明涉及分布式数据处理技术领域,具体提供一种分布式唯一ID生成方法。
背景技术
分布式系统中会对一些数据量大的业务进行分拆,如:用户表,订单表。因为数据量巨大一张表无法承接,就会对其进行分库分表。但一旦涉及到分库分表,就会引申出分布式系统中唯一主键ID的生成问题,要求需要唯一ID的特性:
整个系统ID唯一;ID是数字类型,而且是趋势递增的;ID简短,查询效率快;
所谓的递增是指:第一次生成的ID为12,下一次生成的ID是13,再下一次生成的ID是14。这个就是生成ID递增;
趋势递增:在一段时间内,生成的ID是递增的趋势。如:再一段时间内生成的ID在[0,1000]之间,过段时间生成的ID在[1000,2000]之间。但在[0-1000]区间内的时候,ID生成有可能第一次是12,第二次是10,第三次是14。
MySql:最流行的关系型数据库管理系统,在WEB应用方面MySql是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
双buffer:在读、写下标切换过程中,必然存在新、旧数据同时在使用的情况,只要保证缓冲期足够长,那么切换就是很安全的。通常检测线程的检查周期是秒级的,而获取配置信息是毫秒级甚至微秒级的,因此缓冲期是完全足够的。
发明内容
在业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySql主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的,这个全局唯一ID就叫分布式ID。
本发明的技术任务是针对上述存在的问题,提供一种分布式唯一ID生成方法,利用MySql主键自增的方式,实现分布式数据ID自增,用MySql多实例主键自增,在auto_increment基础上设置step步长,每台实例台的初始值分别为1,2,3...N,步长为N,每次获取ID的时候都要去数据库请求一次,请求数据库ID的时候,获得的ID是一个ID区间段。
为实现上述目的,本发明提供了如下技术方案:
一种分布式唯一ID生成方法,所述方法的实现包括内容如下:
利用MySql主键自增的方式,实现分布式数据ID自增,利用MySql多实例主键自增,每次获取ID时去数据库请求,获得的ID是一个ID区间段。
利用MySql主键自增的方式,这种方式ID自增,而且效率很高,但是存在单点问题,如果MySql宕机了,就没办法生成ID,而且数据库压力很大,高并发扛不住。如图1所示,用MySql多实例主键自增解决,这样就解决了单点问题,但是这样做有个弊端,就是步长一旦定好,就无法扩容,而且单个数据库压力大,数据库自身性能无法满足高并发,这种方式适合不需要扩容的场景。通过设置ID区间段,非常完美的解决了数据库自增的问题,而且可以自行定义max_id的起点,和step步长,非常方便扩容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110868307.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种语法转换迁移方法
- 下一篇:高黏釜用防结块磁传动搅拌装置