[发明专利]一种分布式系统中标识的生成方法、装置、设备及介质在审
申请号: | 202310602653.6 | 申请日: | 2023-05-25 |
公开(公告)号: | CN116610676A | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 华煜 | 申请(专利权)人: | 中电金信软件(上海)有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27 |
代理公司: | 北京维飞联创知识产权代理有限公司 11857 | 代理人: | 李飞 |
地址: | 200030 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 系统 标识 生成 方法 装置 设备 介质 | ||
本申请提供了一种分布式系统中标识的生成方法、装置、设备及介质,分布式系统中的每个子系统中运行有雪花标识生成组件和业务应用的应用实例;应用于任意一个子系统中的雪花标识生成组件,包括:响应于该子系统中目标应用实例的标识生成请求,根据标识生成请求包含的目标数据表的表名称,确定该子系统中与目标数据表的表名称对应的目标雪花标识生成器;使用目标雪花标识生成器生成目标数据表中的唯一标识。这样,分布式系统中每个子系统中设置有与各数据表对应的多实例化的雪花标识生成器,通过多实例化的雪花标识生成器可以并发生成分布式子系统在不同数据表中的唯一标识,能够提高应用服务生成标识的性能。
技术领域
本申请涉及分布式系统技术领域,尤其是涉及一种分布式系统中标识的生成方法、装置、设备及介质。
背景技术
在单元化分布式业务系统数据库分库的架构下,全局唯一标识(ID)无法再单纯通过数据库序列来实现。雪花算法是分布式架构下唯一标识的解决方案之一,往往用来生成流水号或流水明细编号。
然而现有的雪花算法中,为了保证生成的标识的全局唯一性,雪花ID生成器是单例模式,所有依赖雪花ID的地方都使用同一个雪花ID生成器进行生成。然而,雪花ID生成器在生成标识时需要使用synchronize同步锁,因此全局的业务模型都使用同一个雪花ID生成器就会阻塞在同一个同步锁上,即导致在依赖雪花ID的业务模型较多且并发较大的场景下,会造成大量的同步阻塞而影响性能。
发明内容
有鉴于此,本申请的目的在于提供一种分布式系统中标识的生成方法、装置、设备及介质,分布式系统中每个子系统中设置有与各数据表对应的多实例化的雪花标识生成器,通过多实例化的雪花标识生成器可以并发生成分布式子系统在不同数据表中的唯一标识,能够提高应用服务生成标识的性能。
本申请实施例提供了一种分布式系统中标识的生成方法,所述分布式系统中的每个子系统中运行有雪花标识生成组件和业务应用的应用实例;所述生成方法应用于任意一个子系统中的雪花标识生成组件;所述生成方法包括:
响应于该子系统中目标应用实例的标识生成请求,根据所述标识生成请求包含的目标数据表的表名称,确定该子系统中与所述目标数据表的表名称对应的目标雪花标识生成器;
使用所述目标雪花标识生成器生成所述目标数据表中的唯一标识。
进一步的,所述根据所述标识生成请求包含的目标数据表的表名称,确定该子系统中与所述目标数据表的表名称对应的目标雪花标识生成器,包括:
根据所述目标数据表的表名称和预先构建的表名称与雪花标识生成器之间的映射关系,查找该子系统中是否存在与所述目标数据表的表名称对应的雪花标识生成器;
若存在,则将与所述目标数据表的表名称对应的雪花标识生成器确定为所述目标雪花标识生成器;
若不存在,则实例化生成雪花标识生成器,保存所述目标数据表的表名称与新生成的雪花标识生成器之间的映射关系,并将新生成的雪花标识生成器确定为所述目标雪花标识生成器。
进一步的,所述实例化生成雪花标识生成器的方式,包括:
调用雪花标识生成器的生成工具类新建初始雪花标识生成器;
向雪花标识管理节点发送查询参数,以获取所述雪花标识管理节点根据所述查询参数为所述初始雪花标识生成器分配的workerID;
将所述workerID缓存至所述初始雪花标识生成器,并保存所述初始雪花标识生成器至内存,得到雪花标识生成器。
进一步的,所述向雪花标识管理节点发送查询参数,以获取所述雪花标识管理节点根据所述查询参数为所述初始雪花标识生成器分配的workerID,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中电金信软件(上海)有限公司,未经中电金信软件(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310602653.6/2.html,转载请声明来源钻瓜专利网。