[发明专利]全局唯一编号的生成方法、装置、设备及存储介质在审
| 申请号: | 202211183233.0 | 申请日: | 2022-09-27 |
| 公开(公告)号: | CN115686822A | 公开(公告)日: | 2023-02-03 |
| 发明(设计)人: | 刘景涛;王俊;王磊;童薇;夏振全;任晓谢 | 申请(专利权)人: | 中国农业银行股份有限公司 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/52 |
| 代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 李敏灵;刘芳 |
| 地址: | 100005 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 全局 唯一 编号 生成 方法 装置 设备 存储 介质 | ||
本申请提供一种全局唯一编号的生成方法、装置、设备及存储介质,获取内存信息,内存信息中包括目标服务器的服务器编号、第一时间戳、防时钟回拨序号和并发序号,第一时间戳为上一次生成全局唯一编号的时间戳;根据第一时间戳与当前时间戳,更新防时钟回拨序号;根据当前时间戳下目标服务器中的多个并发线程,更新并发序号;根据服务器编号、更新后的防时钟回拨序号、当前时间戳和更新后的并发序号,生成目标服务器的全局唯一编号。保证了全局唯一编号的全局唯一性。
技术领域
本申请属于分布式系统领域,具体涉及一种全局唯一编号的生成方法、装置、设备及存储介质。
背景技术
在高并发分布式系统中需要获取全局唯一编号,用于记录系统操作流水或调用其他系统接口中作为唯一编号使用。
在相关技术中,主要通过复杂算法获取全局唯一编号,以复杂算法中的雪花算法为例,其主要是通过拼接41比特的时间戳、10比特的工作机器编号和12比特的序列号形成全局唯一编号,其中,工作机器编号是由5比特的机房编号和5比特的服务器编号拼接而成。
由于全局唯一编号中包括时间戳,若时钟回拨,则可能会产生重复的全局唯一编号,导致全局唯一编号缺乏全局唯一性。
发明内容
本申请提供一种全局唯一编号的生成方法、装置、设备及存储介质,保证了全局唯一编号的全局唯一性。
第一方面,本申请实施例提供一种全局唯一编号的生成方法,包括:
获取内存信息,内存信息中包括目标服务器的服务器编号、第一时间戳、防时钟回拨序号和并发序号,第一时间戳为上一次生成全局唯一编号的时间戳;
根据第一时间戳与当前时间戳,更新防时钟回拨序号;
根据当前时间戳下目标服务器中的多个并发线程,更新并发序号;
根据服务器编号、更新后的防时钟回拨序号、当前时间戳和更新后的并发序号,生成目标服务器的全局唯一编号。
在一种可能的实施方式中,目标服务器的服务器编号为数据库中最小空缺的服务器编号,或者,目标服务器的服务器编号为根据数据库中最大服务器编号与预设值确定。
在一种可能的实施方式中,根据第一时间戳与当前时间戳,更新防时钟回拨序号,包括:
判断当前时间戳是否小于第一时间戳;
若是,则将防时钟回拨序号更新为防时钟回拨序号与预设步长之和;
若防时钟回拨序号与预设步长之和等于预设阈值,则将时钟回拨序号更新为初始值。
在一种可能的实施方式中,根据当前时间戳下目标服务器中的多个并发线程,更新并发序号,包括:
确定多个并发线程的编号;
根据多个并发线程的编号,更新并发序号;
若更新后的并发序号等于预设阈值,则将并发序号更新为初始值。
在一种可能的实施方式中,方法还包括:
在目标服务器启动时,对内存信息进行初始化处理;
其中,初始化处理包括以下至少一项:
获取服务器编号;
将第一时间戳设置为当前时间戳;
将防时钟回拨序号设置为初始值;
将并发序号设置为初始值。
在一种可能的实施方式中,方法还包括:
将数据库中目标服务器的服务器信息中的时间戳更新为当前时间戳;和/或;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业银行股份有限公司,未经中国农业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211183233.0/2.html,转载请声明来源钻瓜专利网。





