[发明专利]一种编号生成方法和装置在审
申请号: | 201911135071.1 | 申请日: | 2019-11-19 |
公开(公告)号: | CN112905585A | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 肖竹 | 申请(专利权)人: | 北京沃东天骏信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 李阳;郭晗 |
地址: | 100176 北京市北京经济技术*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 编号 生成 方法 装置 | ||
本发明公开了一种编号生成方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:在收到分布式应用系统发送的获取唯一编号的请求之后,在区块链网络中查找已存的最新编号;根据所述已存的最新编号,按照预设规则计算得到所述唯一编号;将所述唯一编号返回所述分布式应用系统。该实施方式能够克服使用UUID方式导致生成的编号长度较长、降低数据库写入性能的缺陷,且不依赖于机器的时钟,避免出现编号不是全局递增的情况,高效可靠。
技术领域
本发明涉及计算机技术领域,尤其涉及一种编号生成方法和装置。
背景技术
在分布式环境中,很多项目中经常会用编号(例如ID(标识))作为唯一标识,例如在分布式服务中,一些服务发送消息到队列,另一些服务从队列消费消息,消息可能会重复,消费端需要做幂等,为了达到业务的幂等,需要有一个不能重复且趋势递增的编号存在,另外还有订单编号、用户编号等的都会用到一个唯一递增的编号。
目前已有的生成分布式唯一自增编号的方法主要有以下两种:一是使用UUID(Universally Unique Identifier,通用唯一识别码):String uuid=UUID.randomUUID().toString(),这种方式可以生成一个长度为32位的全局唯一识别码;二是使用snowFlake算法:其为一种分布式ID生成算法,是一种划分命名空间来生成ID的一种算法,结算是一个long型的ID。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
使用UUID方式导致生成的编号长度较长,而且它在作为数据库索引存储时,由于数据库的索引大都是B+树的方式,当无序的数插入时,可能会导致因为把新记录插入到合适的位置而移动大量的数据,从而降低了写入性能;
使用snowFlake算法依赖机器的时钟,如果服务器时钟回拨,会导致重复编号生成,并且在分布式环境中,每个服务器的时钟不可能完全同步,有时会出现不是全局递增的情况。
发明内容
有鉴于此,本发明实施例提供一种编号生成方法和装置,能够克服使用UUID方式导致生成的编号长度较长、降低数据库写入性能的缺陷,且不依赖于机器的时钟,避免出现编号不是全局递增的情况,高效可靠。
为实现上述目的,根据本发明实施例的一个方面,提供了一种编号生成方法。
一种编号生成方法,包括:在收到分布式应用系统发送的获取唯一编号的请求之后,在区块链网络中查找已存的最新编号;根据所述已存的最新编号,按照预设规则计算得到所述唯一编号;将所述唯一编号返回所述分布式应用系统。
可选地,根据所述已存的最新编号,按照预设规则计算得到所述唯一编号的步骤,包括:从所述获取唯一编号的请求中得到所述分布式应用系统设置的步长;将所述已存的最新编号与所述步长相加,得到所述唯一编号。
可选地,在所述获取唯一编号的请求中不包括所述步长的情况下,将所述已存的最新编号与预设的默认值相加,得到所述唯一编号。
可选地,当在所述区块链网络中未查找到所述已存的最新编号的情况下,生成初始化编号,并将所述初始化编号作为所述唯一编号,然后执行所述将所述唯一编号返回所述分布式应用系统的步骤。
可选地,所述区块链网络中的每个区块存储一个编号,所述已存的最新编号为已创建的最新区块存储的编号,所述方法还包括:在按照预设规则计算得到所述唯一编号之后,创建新的区块存储所述唯一编号。
根据本发明实施例的另一方面,提供了一种编号生成装置。
一种编号生成装置,包括:最新编号查找模块,用于在收到分布式应用系统发送的获取唯一编号的请求之后,在区块链网络中查找已存的最新编号;唯一编号生成模块,用于根据所述已存的最新编号,按照预设规则计算得到所述唯一编号;唯一编号返回模块,用于将所述唯一编号返回所述分布式应用系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京沃东天骏信息技术有限公司;北京京东世纪贸易有限公司,未经北京沃东天骏信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911135071.1/2.html,转载请声明来源钻瓜专利网。