[发明专利]一种分布式数据库主键生成方法及装置在审
申请号: | 201611228520.3 | 申请日: | 2016-12-27 |
公开(公告)号: | CN108241715A | 公开(公告)日: | 2018-07-03 |
发明(设计)人: | 李文;司孝波;孙迁;叶国华;胡胜;王康龙 | 申请(专利权)人: | 苏宁云商集团股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 许峰 |
地址: | 210042 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 主键 业务类型 分布式数据库 分布式环境 服务器获取 主机标识 时间戳 计数器 从配置文件 数据库技术 数据库主键 自定义配置 存储空间 节约资源 配置循环 网络交互 占用空间 拼接 节约 全局 | ||
本发明涉及数据库技术领域,公开了一种分布式数据库主键生成方法及装置,可以在分布式环境下生成全局唯一的主键,所述生成方法无需网络交互,节约资源,生成的主键占用空间小,有利于节约存储空间。所述生成方法,包括:从配置文件获取业务类型,所述业务类型可自定义配置;从服务器获取时间戳和主机标识;配置循环计数器,生成自增数字;根据所述获取的业务类型、所述从服务器获取的时间戳和主机标识,和所述生成的自增数字,拼接生成主键。本发明适用于分布式环境下数据库主键的生成。
技术领域
本发明涉及数据库技术领域,具体来说,涉及一种分布式数据库主键生成方法及装置。
背景技术
在单机系统中,例如一个关系型数据库管理系统(英文简称:MySQL)实例,唯一识别码(对应英文:unique ID)的生成是非常简单的,直接利用MySQL自带的“自增ID功能”就可以实现。但是,在一个存在多个分库分表(对应英文:Shards)的分布式系统中插入数据,例如在多个MySQL实例组成的一个集群中插入数据。这个问题会变得非常复杂,且高并发场景下的性能存在瓶颈。因此,依靠现有的数据库的锁机制来确保主键的唯一性,已经逐渐淡出业内。
此外,现有技术中还存在以下一些方法:比如,直接利用UUID.randomUUID(Java类库中实现全局唯一标识符的方法)接口来生成unique ID。但是该方法生成的ID有128bits。同时该方法生成的ID中也没有带时间戳(对应英文:Timestamp),没有排序,无法保证趋势递增,不具备业务含义,同时可读性很差,并且往往是使用字符串存储,查询的效率比较低,存储空间比较大。
再如,现有技术中还存在利用一个中心服务器来统一生成unique ID,例如Redis数据库。但这种方法存在单点问题,一旦中心服务器不可用,整个服务就瘫痪了。另外,网络交互的时间在高并发场景下的影响也会被放大,最为关键的是在集群规模及业务规模达到一定的量级下,这个中心服务器的性能得不到有效的保证和持续的扩展。
发明内容
本发明的目的在于,提供一种分布式数据库主键生成方法及装置,可以在分布式环境下生成主键,且该生成方法无需网络交互,节约资源;生成的主键占用空间小,有利于节约存储空间。
为达到上述目的,本发明实施例采用以下技术方案:
第一方面,本发明实施例提供一种分布式数据库主键生成方法,包括:
从配置文件获取业务类型,所述业务类型可自定义配置;
从服务器获取时间戳和主机标识;
配置循环计数器,生成自增数字;
根据所述获取的业务类型、所述从服务器获取的时间戳和主机标识,和所述生成的自增数字,拼接生成主键。
结合第一方面,作为第一种可能实现的方式,所述时间戳长度根据业务需求自定义调整,最小单位是毫秒。
结合第一方面,作为第二种可能实现的方式,所述主机标识由统一配置中心配置和维护,包括IP地址和端口号;或者,所述主机标识由程序运行获取,包括IP地址和进程ID。
结合第一方面,作为第三种可能实现的方式,所述配置循环计数器,生成自增数字,包括:配置循环计数器,从最小值向最大值自动生成自增数字,所述的自增数字为整数;当自增数字达到最大值后,所述循环计数器从最小值开始重新生成自增数字。
结合第一方面或第一方面的第三种可能实现的方式,作为第四种可能实现的方式,所述配置循环计数器,包括:创建原子计数器实例,并使用获取单元和自增单元来获取和设置值。
结合第一方面,作为第五种可能实现的方式,所述拼接生成主键在内存中运行。
第二方面,本发明实施例提供一种分布式数据库主键生成装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏宁云商集团股份有限公司,未经苏宁云商集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611228520.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于多元切分的倒排索引检索方法
- 下一篇:一种资源导入方法及装置