[发明专利]高可用高性能的数字序列生成的方法和系统有效
申请号: | 201611165776.4 | 申请日: | 2016-12-16 |
公开(公告)号: | CN108206744B | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 赵玉开 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;赵静 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 可用 性能 数字 序列 生成 方法 系统 | ||
本发明提供一种高可用高性能的数字序列生成的方法和系统,能够不需要服务端,而使最终的数字序列生成逻辑全部放在客户端;并且能够保障数字序列生成的高可用和高性能。该方法包括:步骤一:客户端根据数字序列请求,从内存队列中获取数字序列,若内存队列中存在数字序列,则直接返回所述数字序列,若内存队列中不存在数字序列,则继续执行步骤二;步骤二:所述客户端调用底层序列生成器生成底层序列;步骤三:所述客户端以所述底层序列为基础,生成若干数字序列;步骤四:返回排在首位的数字序列,并将其余的数字序列保存在内存队列中,以便针对后续数字序列请求及时获取数字序列。
技术领域
本发明涉及计算机技术及软件领域,尤其涉及一种高可用高性能的数字序列生成的方法和系统。
背景技术
随着计算机技术的不断发展,各业务场景中经常需要生成一个保证唯一的数字序列,例如电子商务领域的快递单号、商品订单号或者分库分表后为了保证唯一的数据表数字主键等。各业务系统会严重依赖这类数字序列生成方法,如果数字序列生成效率低下,会直接影响业务系统的效率,如果数列序列生成异常,则会直接导致业务系统不可用。
现有技术中数字序列的生成方法大致如下:
1.数字序列客户端请求服务端获得数字序列;
2.数字序列服务端为了保障高可用,会有多台服务器支持数字序列的生成,在收到数字序列生成请求后会向数据库,或是能生成数字序列的其他中间件发出请求;
3.数据库或其他中间件使用自增ID或者列值加1等方式返回数字序列给数字序列服务端。具体逻辑架构可参见图1。
但现有技术存在一定的缺陷性:
1)数字序列客户端请求生成数字序列时,需要先请求服务端,服务端再请求数据库,有两次网络请求开销;
2)数字序列服务端需要部署多台服务器以满足序列生成的高可用要求,因此也就需要更多的硬件资源。
发明内容
有鉴于此,本发明提供一种高可用高性能的数字序列生成的方法和系统,能够不需要服务端,而使最终的数字序列生成逻辑全部放在客户端;并且能够保障数字序列生成的高可用和高性能。
为实现上述目的,根据本发明的一个方面,提供了一种高可用高性能的数字序列生成的方法。
本发明的一种高可用高性能的数字序列生成的方法包括:步骤一:客户端根据数字序列请求,从内存队列中获取数字序列,若内存队列中存在数字序列,则直接返回所述数字序列,若内存队列中不存在数字序列,则继续执行步骤二;步骤二:所述客户端调用底层序列生成器生成底层序列;步骤三:所述客户端以所述底层序列为基础,生成若干数字序列;步骤四:返回排在首位的数字序列,并将其余的数字序列保存在内存队列中,以便针对后续数字序列请求及时获取数字序列。
可选地,所述方法还包括:按照预设周期检测所述数字序列请求的请求速度,根据所述请求速度计算未来预设时间段内需要的数字序列个数;以及若内存队列中的数字序列个数小于所述未来预设时间段内需要的数字序列个数,则重复执行步骤二、步骤三,生成数字序列,并将所述数字序列保存至内存队列中,直至内存队列中的数字序列个数不小于所述未来预设时间段内需要的数字序列个数。
可选地,所述步骤二还包括:根据客户端的数量多少,预先设置2m个可供调用的底层序列生成器,其中,m为自然数;以及所述步骤三还包括:所述客户端将底层序列生成器生成的底层序列向左移位m,然后与所述底层序列生成器的序号进行位或运算,以保证利用不同的底层序列生成器生成的底层序列的唯一性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611165776.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:资源共享方法及装置
- 下一篇:业务的操作方法、装置及云计算系统