基于同库模式的分布式事务全局ID生成方法及装置制造方法及图纸

技术编号:25947510 阅读:21 留言:0更新日期:2020-10-17 03:39
本发明专利技术提供了一种基于同库模式的分布式事务全局ID生成方法及装置,基于同库模式的分布式事务全局ID生成方法包括:根据预生成的改进雪花算法,在客户端生成子事务ID;根据所述改进雪花算法,在服务端生成主事务ID;分布式事务全局ID包括所述子事务ID以及所述主事务ID。本发明专利技术提供的基于同库模式的分布式事务全局ID生成方法及装置,在分布式事务ID生成过程中,具有唯一性、高可用性、以及较好的性能容量等优点。

【技术实现步骤摘要】
基于同库模式的分布式事务全局ID生成方法及装置
本专利技术涉及计算机数据处理
,特别是涉及分布式事务领域
,具体涉及一种基于同库模式的分布式事务全局ID生成方法及装置。
技术介绍
随着分布式技术的逐步演进,原本单一的数据库事务被拆分成不同数据库或服务间的分布式事务,为了完成分布式转型就要解决分布式事务的一致性问题。最初分布式事务管理器作为一个独立集群,用于统一协调分布式事务,这种模式便于统筹管理但性能受到制约,另外,独立集群也带来了高可用的隐患。为追求极致性能,将事务分布式落地在业务应用侧,即同库模式。在同库模式下,分布式事务全局ID的生成策略目前一般分为两类:第一类、采用服务端独立集群统一发号;第二类、嵌入客户端业务应用侧生成。第一类方案仍强依赖于服务端,独立集群部署缺少高可用降级策略。同时随着业务应用地不断接入,调用并发量上升,存在性能瓶颈制约。第二类方案也有几种方式:1、用UUID生成,字段无序会导致存储时索引重建,消耗性能,且字段太长消耗存储空间;2、手工登记分配各个应用服务群组的ID段号,用于本地生成事务ID防重,这里存在一些操作管理风险;3、在分配服务群组ID的基础上,采用数据库自增序列,会造成每次执行事务都额外增加了数据库IO消耗,使性能下降;4、客户端使用雪花算法,64长度bit位无法完整纳入“时间戳+客户端容器workID+序列号+服务群组ID”,故需要双字段主键存储,影响了存储性能及传输使用不便。综上,目前同库模式下没有囊括极致性能、高可用、大容量、有序、全局唯一的分布式事务ID生成方案,因此,如何提供一种新的方案,解决上述技术问题是本领域亟待解决的技术难题。
技术实现思路
针对现有技术中的问题,本专利技术提供的基于同库模式的分布式事务全局ID生成方法及装置,在分布式事务ID生成过程中,具有唯一性、高可用性、以及较好的性能容量等优点。为解决上述技术问题,本专利技术提供以下技术方案:第一方面,本专利技术提供一种基于同库模式的分布式事务全局ID生成方法,包括:根据预生成的改进雪花算法,在客户端生成子事务ID;根据所述改进雪花算法,在服务端生成主事务ID;分布式事务全局ID包括所述子事务ID以及所述主事务ID。一实施例中,生成所述改进雪花算法的步骤包括:根据时间戳、应用服务群组ID、客户端容器workID以及序列号生成二进制数据;对所述二进制数据进行base32转码,生成有序字符串。一实施例中,基于同库模式的分布式事务全局ID生成方法还包括:分配唯一的应用服务群组ID至客户端。一实施例中,基于同库模式的分布式事务全局ID生成方法还包括:当所述主事务ID生成异常时,所述主事务ID由客户端生成;当所述子事务ID生成异常时,所述子事务ID由服务端生成。一实施例中,基于同库模式的分布式事务全局ID生成方法还包括:根据预生成的改进雪花算法,在嵌套应用的客户端生成嵌套层子事务ID。第二方面,本专利技术提供一种基于同库模式的分布式事务全局ID生成装置,包括:子事务ID第一生成单元,用于根据预生成的改进雪花算法,在客户端生成子事务ID;主事务ID第一生成单元,用于根据所述改进雪花算法,在服务端生成主事务ID;分布式事务全局ID包括所述子事务ID以及所述主事务ID。一实施例中,基于同库模式的分布式事务全局ID生成装置还包括:雪花算法生成单元,用于生成所述改进雪花算法,所述雪花算法生成单元包括:二进制数据生成模块,用于根据时间戳、应用服务群组ID、客户端容器workID以及序列号生成二进制数据;有序字符串生成模块,用于对所述二进制数据进行base32转码,生成有序字符串。所述基于同库模式的分布式事务全局ID生成装置还包括:服务群组ID分配单元,用于分配唯一的应用服务群组ID至客户端;主事务ID第二生成单元,用于当所述主事务ID生成异常时,所述主事务ID由客户端生成;子事务ID第二生成单元,用于当所述子事务ID生成异常时,所述子事务ID由服务端生成。一实施例中,基于同库模式的分布式事务全局ID生成装置还包括:套层子事务ID生成单元,用于根据所述改进雪花算法,在嵌套应用的客户端生成嵌套层子事务ID。第三方面,本专利技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现基于同库模式的分布式事务全局ID生成方法的步骤。第四方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现基于同库模式的分布式事务全局ID生成方法的步骤。从上述描述可知,本专利技术实施例提供的基于同库模式的分布式事务全局ID生成方法及装置,首先根据预生成的改进雪花算法,在客户端生成子事务ID;接着,根据所述改进雪花算法,在服务端生成主事务ID;分布式事务全局ID包括所述子事务ID以及所述主事务ID,本专利技术提供的基于同库模式的分布式事务全局ID生成方法及装置,在分布式事务ID生成过程中,具有唯一性、高可用性、以及较好的性能容量等优点。具体地:1、本专利技术避免了分布式事务ID单点生成压力过于集中,使主事务ID、本地子事务ID、嵌套子事务ID由不同服务器生成。2、本专利技术提供降级策略保证了分布式事务ID生成逻辑的高可用,服务端或客户端的单点异常不会影响系统运行。3、本专利技术改进版雪花算法提供了更大的业务容量且ID全局不冲突,ID有序且存储空间小。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术的实施例中基于同库模式的分布式事务全局ID生成方法流程示意图一;图2为本专利技术的实施例中步骤300的流程示意图;图3为本专利技术的实施例中基于同库模式的分布式事务全局ID生成方法流程示意图二;图4为本专利技术的实施例中基于同库模式的分布式事务全局ID生成方法流程示意图三;图5为本专利技术的实施例中基于同库模式的分布式事务全局ID生成方法流程示意图四;图6为本专利技术的具体应用实例中基于同库模式的分布式事务全局ID生成方法的流程示意图;图7为本专利技术的具体应用实例中分布式事务全局ID生成装置架构图;图8为本专利技术的具体应用实例中服务群组ID分配装置1结构示意图;图9为本专利技术的具体应用实例中客户端事务ID生成装置2结构示意图;图10为本专利技术的具体应用实例中服务端事务ID生成装置3结构示意图;图11为本专利技术的实施例中基于同库模式的分布式事务全局ID生成装置的结构框图一;图12为本专利技术的实施例中雪花算法生成单元的结构示本文档来自技高网
...

【技术保护点】
1.一种基于同库模式的分布式事务全局ID生成方法,其特征在于,包括:/n根据预生成的改进雪花算法,在客户端生成子事务ID;/n根据所述改进雪花算法,在服务端生成主事务ID;/n分布式事务全局ID包括所述子事务ID以及所述主事务ID。/n

【技术特征摘要】
1.一种基于同库模式的分布式事务全局ID生成方法,其特征在于,包括:
根据预生成的改进雪花算法,在客户端生成子事务ID;
根据所述改进雪花算法,在服务端生成主事务ID;
分布式事务全局ID包括所述子事务ID以及所述主事务ID。


2.根据权利要求1所述的分布式事务全局ID生成方法,其特征在于,生成所述改进雪花算法的步骤包括:
根据时间戳、应用服务群组ID、客户端容器workID以及序列号生成二进制数据;
对所述二进制数据进行base32转码,生成有序字符串。


3.根据权利要求1所述的分布式事务全局ID生成方法,其特征在于,还包括:
分配唯一的应用服务群组ID至客户端。


4.根据权利要求1所述的分布式事务全局ID生成方法,其特征在于,还包括:
当所述主事务ID生成异常时,所述主事务ID由客户端生成;
当所述子事务ID生成异常时,所述子事务ID由服务端生成。


5.根据权利要求1所述的分布式事务全局ID生成方法,其特征在于,还包括:根据所述改进雪花算法,在嵌套应用的客户端生成嵌套层子事务ID。


6.一种基于同库模式的分布式事务全局ID生成装置,其特征在于,包括:
子事务ID第一生成单元,用于根据预生成的改进雪花算法,在客户端生成子事务ID;
主事务ID第一生成单元,用于根据所述改进雪花算法,在服务端生成主事务ID;
分布式事务全局ID包括所述子事务...

【专利技术属性】
技术研发人员:张丹枫程冲王宇轩唐冬雪
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1