System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及分布式,尤其涉及一种唯一编号生成方法、装置、电子设备和存储介质。
技术介绍
1、在当前的大数据时代,分布式系统广泛应用于互联网、云计算、物联网和人工智能等领域。
2、在分布式系统中,高并发环境下的唯一编号生成是一个关键问题。目前,常见的唯一编号生成方案包括基于uuid(universally unique identifier,通用唯一识别码)的生成策略。但是这种方式存在一定的不足:uuid通常包括36个字节,这对于存储和传输来说是一个巨大的负担,尤其是在需要频繁生成编号的系统中。uuid是随机生成的,没有固定的顺序,这对于一些需要按照编号顺序处理的场景来说,是不利的,同时它虽然相对较快,但在高并发场景下,如果每个请求都需要生成uuid,仍然会对性能产生影响。因此,亟需一种新的高并发场景下的唯一编号生成方法。
技术实现思路
1、本专利技术提供了一种唯一编号生成方法、装置、电子设备、存储介质和计算机程序产品。
2、根据本专利技术的一方面,提供了一种唯一编号生成方法,包括:
3、在编号生成设备启动后,访问预先部署的分布式协调服务集群,并从分布式协调服务集群中获取与编号生成设备对应的初始机器标识;
4、响应于接收到高并发环境下的编号生成请求,确定每个编号生成请求各自对应的时间戳和序列号;
5、基于雪花算法,根据初始机器标识、每个编号生成请求各自对应的时间戳和序列号,为每个编号生成请求生成对应的唯一编号。
7、获取分布式协调服务集群提供的分布式锁;
8、在成功获取到分布式锁后,从分布式协调服务集群中存储机器标识的节点读取与编号生成设备对应的初始机器标识。
9、在一些实施例中,方法还包括:
10、在初始配置阶段,为每个编号生成设备分配一个初始机器标识,并将每个编号生成设备与初始机器标识的映射关系保存在分布式协调服务集群的预设命名空间中。
11、在一些实施例中,分布式协调服务集群通过监测机制实时监测编号生成设备的状态,并在确定编号生成设备下线后,释放编号生成设备对应的初始机器标识;
12、相应的,方法还包括:
13、在编号生成设备重新上线后,重新访问分布式协调服务集群以获取最新的机器标识。
14、在一些实施例中,方法还包括:
15、通过监测机制,实时监测分布式协调服务集群的运行状态;
16、若根据运行状态确定分布式协调服务集群的主节点故障,则触发集群容错机制进行节点恢复。
17、在一些实施例中,响应于接收到高并发环境下的编号生成请求,确定每个编号生成请求各自对应的时间戳和序列号,包括:
18、响应于接收到高并发环境下的编号生成请求,获取当前时间信息,并将当前时间信息转换成编号生成请求对应的时间戳;
19、通过序列号自增的方式,确定编号生成请求各自对应的序列号。
20、根据本专利技术的另一方面,提供了一种唯一编号生成装置,包括:
21、第一参数获取模块,用于在编号生成设备启动后,访问预先部署的分布式协调服务集群,并从分布式协调服务集群中获取与编号生成设备对应的初始机器标识;
22、第二参数获取模块,用于响应于接收到高并发环境下的编号生成请求,确定每个编号生成请求各自对应的时间戳和序列号;
23、编号生成模块,用于基于雪花算法,根据初始机器标识、每个编号生成请求各自对应的时间戳和序列号,为每个编号生成请求生成对应的唯一编号。
24、在一些实施例中,在从分布式协调服务集群中获取与编号生成设备对应的初始机器标识方面,第一参数获取模块具体用于:
25、获取分布式协调服务集群提供的分布式锁;
26、在成功获取到分布式锁后,从分布式协调服务集群中存储机器标识的节点读取与编号生成设备对应的初始机器标识。
27、在一些实施例中,还包括:
28、初始配置模块,用于在初始配置阶段,为每个编号生成设备分配一个初始机器标识,并将每个编号生成设备与初始机器标识的映射关系保存在分布式协调服务集群的预设命名空间中。
29、在一些实施例中,分布式协调服务集群通过监测机制实时监测编号生成设备的状态,并在确定编号生成设备下线后,释放编号生成设备对应的初始机器标识;
30、相应的,装置还包括:
31、第三参数获取模块,用于在编号生成设备重新上线后,重新访问分布式协调服务集群以获取最新的机器标识。
32、在一些实施例中,还包括:
33、监测模块,用于通过监测机制,实时监测分布式协调服务集群的运行状态;
34、恢复模块,用于若根据运行状态确定分布式协调服务集群的主节点故障,则触发集群容错机制进行节点恢复。
35、在一些实施例中,第二参数获取模块具体用于:
36、响应于接收到高并发环境下的编号生成请求,获取当前时间信息,并将当前时间信息转换成编号生成请求对应的时间戳;
37、通过序列号自增的方式,确定编号生成请求各自对应的序列号。
38、根据本专利技术的另一方面,提供了一种电子设备,电子设备包括:
39、至少一个处理器;以及
40、与至少一个处理器通信连接的存储器;其中,
41、存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行本专利技术实施例的唯一编号生成方法。
42、根据本专利技术的另一方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使处理器执行时实现本专利技术实施例的唯一编号生成方法。
43、根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述方法中的步骤。
44、本专利技术实施例的技术方案,将雪花算法和分布式协调服务集群相结合以生成唯一编号,相比于基于uuid的生成策略,生成的唯一编号更短,占用的传输和存储资源更少;而且每个编号生成请求对应的唯一编号可以通过序列号进行排序,更适合高并发环境。
45、应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
本文档来自技高网...【技术保护点】
1.一种唯一编号生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述从所述分布式协调服务集群中获取与所述编号生成设备对应的初始机器标识,包括:
3.根据权利要求1所述的方法,其特征在于,还包括:
4.根据权利要求1所述的方法,其特征在于,所述分布式协调服务集群通过监测机制实时监测所述编号生成设备的状态,并在确定所述编号生成设备下线后,释放所述编号生成设备对应的初始机器标识;
5.根据权利要求1所述的方法,其特征在于,还包括:
6.根据权利要求1所述的方法,其特征在于,响应于接收到高并发环境下的编号生成请求,确定每个编号生成请求各自对应的时间戳和序列号,包括:
7.一种唯一编号生成装置,其特征在于,包括:
8.一种电子设备,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序在被
...【技术特征摘要】
1.一种唯一编号生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述从所述分布式协调服务集群中获取与所述编号生成设备对应的初始机器标识,包括:
3.根据权利要求1所述的方法,其特征在于,还包括:
4.根据权利要求1所述的方法,其特征在于,所述分布式协调服务集群通过监测机制实时监测所述编号生成设备的状态,并在确定所述编号生成设备下线后,释放所述编号生成设备对应的初始机器标识;
5.根据权利要求1所述的方法,其特征在于,还包括:
6.根据权...
【专利技术属性】
技术研发人员:杨超,谢洋,李纪鹏,
申请(专利权)人:中国工商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。