System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及计算机,尤其涉及一种序列号生成方法和装置。
技术介绍
1、在分布式系统中,很多业务场景需要生成并使用全局唯一序列号(也称为全局唯一标识符),比如银行业核心业务系统中的账户序号、流水号、交易订单号等,这类序号生成规则要求序列唯一性和递增性。其中,账户序号类的递增规则为每次累加1,但并发数要求相对不高,一般使用集中式数据进行累加的方法进行解决。而对于流水号类的序号,规则并发数特别高,每笔交易都需要生成该序号,传统数据库的解决方案可能无法满足性能要求。
技术实现思路
1、本公开提供一种序列号生成方法和装置,以至少在一定程度上解决相关技术中的技术问题之一。本公开的技术方案如下:
2、根据本公开实施例的第一方面,提供一种序列号生成方法,应用于微服务应用程序内的序列号生成组件,包括:接收所述微服务应用程序内任一实例发送的序列号申请请求;向全局序列管理服务发送注册请求,以获取所述全局序列管理服务为所述实例分配的实例标识;基于第一预设规则生成所述实例对应的时钟标识,并初始化所述实例对应的本地顺序号;其中,所述时钟标识用于标识所述实例的时间窗口,所述本地顺序号用于标识对应时间窗口内序列号的生成顺序;根据当前时间戳、所述实例标识、所述时钟标识和初始化后的本地顺序号,生成目标序列号,并将所述目标序列号发送给所述实例。
3、根据本公开实施例的第二方面,提供了一种序列号生成装置,应用于微服务应用程序内的序列号生成组件,包括:接收模块,用于接收所述微服务应用程序内任一实例发送
4、根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如本公开第一方面实施例所述的序列号生成方法。
5、根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本公开第一方面实施例所述的序列号生成方法。
6、根据本公开实施例的第五方面,提供一种计算机程序产品,包括:计算机程序,所述计算机程序被处理器执行时实现如本公开第一方面实施例所述的序列号生成方法。
7、本公开的实施例提供的技术方案至少带来以下有益效果:
8、在本技术方案中,接收微服务应用程序内任一实例发送的序列号申请请求;向全局序列管理服务发送注册请求,以获取全局序列管理服务为实例分配的实例标识;基于第一预设规则生成实例对应的时钟标识,并初始化实例对应的本地顺序号;其中,时钟标识用于标识实例的时间窗口,本地顺序号用于标识对应时间窗口内序列号的生成顺序;根据当前时间戳、实例标识、时钟标识和初始化后的本地顺序号,生成目标序列号,并将目标序列号发送给实例,由此,在生成序列号的过程中,不采用集中式的序列号生成方法,而是利用分布式架构的思路将序列号生成组件集成到微服务应用程序中,并增加全局序列管理服务来统一管理序列,实现在本地直接生成序列号,极大提升了序列号生成的性能,能够满足金融场景下的分布式业务系统需求;其中,序列号由时间戳、实例标识、时钟标识、顺序号组成,由此,通过在序列号中增加时钟标识,可在检测到时钟回拨后换时钟标识,以避免生成的序列重复,解决大型分布式系统因时钟校准等原因引起的时钟回拨问题;其中,通过增加全局序列管理服务来分配、管理和回收实例标识,有效保证了分布式系统中各实例标识的全局唯一性。
9、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本文档来自技高网...【技术保护点】
1.一种序列号生成方法,其特征在于,应用于微服务应用程序内的序列号生成组件,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据当前时间戳、所述实例标识、所述时钟标识和初始化后的本地顺序号,生成目标序列号,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标位数的设定类型的第一数值,生成所述目标序列号,包括:
4.根据权利要求2所述的方法,其特征在于,所述根据所述时钟标识,确定本次生成序列号对应的时钟标识,包括:
5.根据权利要求2所述的方法,其特征在于,所述根据初始化后的本地顺序号或者上次生成目标序列号对应的本地顺序号,确定本次生成目标序列号对应的本地顺序号,包括:
6.根据权利要求5所述的方法,其特征在于,所述根据初始化后的本地顺序号,确定本次生成目标序列号对应的本地顺序号,包括:
7.根据权利要求5所述的方法,其特征在于,所述根据上次生成目标序列号对应的本地顺序号,确定本次生成目标序列号对应的本地顺序号,包括:
8.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
9.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
10.一种序列号生成装置,其特征在于,应用于微服务应用程序内的序列号生成组件,包括:
...【技术特征摘要】
1.一种序列号生成方法,其特征在于,应用于微服务应用程序内的序列号生成组件,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据当前时间戳、所述实例标识、所述时钟标识和初始化后的本地顺序号,生成目标序列号,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标位数的设定类型的第一数值,生成所述目标序列号,包括:
4.根据权利要求2所述的方法,其特征在于,所述根据所述时钟标识,确定本次生成序列号对应的时钟标识,包括:
5.根据权利要求2所述的方法,其特征在于,所述根据初始化后的本地顺序号或者上次生成目标序列号对应的...
【专利技术属性】
技术研发人员:曾海波,廖文胜,
申请(专利权)人:四川农村商业联合银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。