[发明专利]生成主键的方法、装置、电子设备和可读存储介质有效
申请号: | 201710294872.7 | 申请日: | 2017-04-28 |
公开(公告)号: | CN108804451B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 王云峰;孙秀珍 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;姜劲 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 生成 主键 方法 装置 电子设备 可读 存储 介质 | ||
本发明提供一种生成主键的方法、装置、电子设备和可读存储介质,能够实现高并发并生成全局唯一的主键。该方法包括:在需要生成主键时,根据负载均衡算法选择至少一个主键生成服务器中的一个并且向所选择的主键生成服务器发出生成主键的请求;根据负载均衡算法选择至少一个数据库服务器中的一个;所选择的数据库服务器生成初始ID并将所述初始ID返回给所选择的主键生成服务器;所选择的主键生成服务器在从所选择的数据库服务器接收到所述初始ID之后,对所述初始ID进行二进制转换并且通过移位算法来获得最终的主键值。
技术领域
本发明涉及电子应用领域,更具体地涉及一种生成主键的方法、装置、电子设备和可读存储介质。
背景技术
在电子应用领域,当需要进行数据插入操作时,常常需要生成主键。通过由一台服务器来提供主键生成,并且主要是利用数据库自动主键方式来实现的。然而,如果所有的数据插入操作都需要请求一台服务器,则会导致效率非常低,并且不能满足高并发数据要求。此外,数据库主键方式导致不能横向扩展服务器,因为扩展会导致重复的主键。
除了数据库主键方式外,还可以采用UUID方式来生成主键。UUID方式采用当前日期和时间+时钟序列+全局唯一的IEEE机器识别号。虽然UUID方式不会出现重复主键,但会导致主键长度过大,消耗数据库内存,并且最重要的是UUID不支持主键排序,使得每次插入数据时,可能导致主键索引重新排序,从而对数据库性能消耗非常大。
因此,需要一种能够高并发生成主键来解决主键生成较慢的问题的方法、装置、电子设备和可读存储介质。
发明内容
有鉴于此,本发明提供一种生成主键的方法、装置、电子设备和可读存储介质,能够使用多台服务器同时提供主键生成服务,从而使得能够高并发生成主键。
为实现上述目的,根据本发明实施例的一个方面,提供了生成主键的系统。
根据本发明实施例的一种生成主键的系统,包括应用系统、至少一个主键生成服务器、以及至少一个数据库服务器,其中:所述应用系统在需要生成主键时,根据负载均衡算法选择所述至少一个主键生成服务器中的一个并且向所选择的主键生成服务器发出生成主键的请求;所选择的主键生成服务器在接收到所述请求之后,根据负载均衡算法选择所述至少一个数据库服务器中的一个;所选择的数据库服务器生成初始ID并将所述初始ID返回给所选择的主键生成服务器;所选择的主键生成服务器在从所选择的数据库服务器接收到所述初始ID之后,对所述初始ID进行二进制转换并且通过移位算法来获得最终的主键值。。
可选地,所述负载均衡算法是轮询法和随机法中的一个。
可选地,通过所选择的数据库服务器自增的方式来生成所述初始ID。
可选地,执行移位算法包括:对所述初始ID进行二进制转换;将所述初始ID向左或向右移位预定数目;以及将所移位的初始ID附加与所选择的数据库服务器的编号或所选择的主键生成服务器的编号相对应的二进制值。
可选地,所述预定数目根据数据库服务器的数目来确定。
为实现上述目的,根据本发明实施例的一个方面,提供了一种生成主键的方法。
根据本发明实施例的一种生成主键的方法,包括:在需要生成主键时,根据负载均衡算法选择至少一个主键生成服务器中的一个并且向所选择的主键生成服务器发出生成主键的请求;根据负载均衡算法选择至少一个数据库服务器中的一个;所选择的数据库服务器生成初始ID并将所述初始ID返回给所选择的主键生成服务器;所选择的主键生成服务器在从所选择的数据库服务器接收到所述初始ID之后,对所述初始ID进行二进制转换并且通过移位算法来获得最终的主键值。
可选地,所述负载均衡算法是轮询法和随机法中的一个。
可选地,所述移位算法的移位数目根据数据库服务器的数目来确定。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710294872.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信息推送的方法和装置
- 下一篇:多媒体资源封面展示方法及装置