主键ID生成方法、装置、电子设备及存储介质制造方法及图纸

技术编号:32645581 阅读:18 留言:0更新日期:2022-03-12 18:26
本申请涉及数据库技术领域,提供一种主键ID生成方法、装置、电子设备及存储介质,应用于第一业务系统,该方法包括:接收业务请求;业务请求为第二业务系统处理成功的业务请求;基于业务请求确定待生成的主键ID的数量;若待生成的主键ID的数量为多个,则基于业务请求生成全局跟踪流水号、多个第一主键ID以及各个主键ID对应的第一业务要素,并基于全局跟踪流水号调用第二业务系统中对应的第二主键ID和第二业务要素,基于比对第一业务要素和第二业务要素的结果对第一主键ID进行更新。这样,保证了双方系统中数据库存储的主键ID的一致性,为双方系统交易双发跟账奠定基础,且该方法配置要求较低,应用范围广。应用范围广。应用范围广。

【技术实现步骤摘要】
主键ID生成方法、装置、电子设备及存储介质


[0001]本申请涉及数据库
,尤其涉及一种主键ID生成方法、装置、电子设备及存储介质。

技术介绍

[0002]随着国际贸易的不断发展变化,不少银行正加大去IOE工作,即在阿里巴巴的IT架构中,去掉国际商业机器公司(International Business Machines Corporation,IBM)的小型机、Oracle数据库、EMC存储设备,逐步往分布式架构调整。银行新核心系统通常采用分布式架构,与旧线主机架构体系存在较大差异,在新、老系统中数据跟账比对阶段如何保证新、老系统数据库主键唯一编码(Identity Document,ID)的一致是数据跟账比对能否成功的关键,例如,主键ID可以为客户编号,借记卡号、网银盾编号等。
[0003]现有技术中,在新系统和旧系统处理同一笔交易逻辑时,可以直接利用各自数据库主键自增机制生成对应的主键ID;也可以直接利用各自系统处理完交易存储至数据库的时间戳与该交易中特定业务字段拼接生成对应的主键ID;还可以各自系统通过外呼的方式获取第三方编号生成系统提供的编号生成对应的主键ID。
[0004]但是,利用数据库主键自增机制生成主键ID的方式只适用于新系统和旧系统逻辑高度一致的情况下,配置要求较高,如果某一笔交易在旧系统处理成功而在新系统处理失败则会导致接下来新、旧系统产生的主键ID错乱;利用时间戳和特定业务字段拼接生成主键ID的方式,适用条件有限制,必须确保新旧系统时钟完全一致,而且系统并发量不可以很高,否则也会出现主键ID错乱;利用第三方编号生成系统生成主键ID方式需要新系统和旧系统都具备外呼条件,而目前许多银行的旧系统应用的架构不允许外呼,该方案适用场景有局限性。

技术实现思路

[0005]本申请提供一种主键ID生成方法、装置、电子设备及存储介质,可以不依赖第三方系统,也不需要旧系统支持交易外呼调用功能,便可以保证了新、旧系统中数据库中存储的主键ID的一致性,为双方系统交易双发跟账奠定基础,且配置要求较低,应用范围广。
[0006]第一方面,本申请提供一种主键ID生成方法,应用于第一业务系统,所述方法包括:
[0007]接收业务请求;所述业务请求为第二业务系统处理成功的业务请求;
[0008]基于所述业务请求度额定待生成的主键ID的数量;
[0009]若待生成的主键ID的数量为多个,则基于所述业务请求生成全局跟踪流水号、多个第一主键ID以及各个主键ID对应的第一业务要素,并基于所述全局跟踪流水号调用所述第二业务系统中对应的第二主键ID和第二业务要素,通过比对所述第一业务要素和所述第二业务要素,得到比对结果,基于所述比对结果利用所述第二主键ID更新第一主键ID;
[0010]其中,每一业务请求对应唯一的所述全局跟踪流水号。
[0011]可选的,所述方法还包括:
[0012]若待生成的主键ID的数量为一个,则调用所述第二业务系统基于所述业务请求生成的全局跟踪流水号和表名,并利用所述全局跟踪流水号和所述表名获取主键ID。
[0013]可选的,利用所述全局跟踪流水号和所述表名获取主键ID,包括:
[0014]基于所述表名获取数据库中对应的表,其中,所述表用于存储全局跟踪流水号与主键ID的对应关系;
[0015]利用所述全局跟踪流水号在所述表中查找对应的主键ID。
[0016]可选的,每一主键ID对应至少一个业务要素,所述业务要素为一个业务对应的多个主键ID之间不会重复出现的要素;基于所述全局跟踪流水号调用所述第二业务系统中对应的第二主键ID和第二业务要素,包括:
[0017]启动轮询进程读取所述第二业务系统中预先存储表中的业务对应的处理记录;所述预先存储表用于存储第二业务系统处理业务请求生成的业务的全局跟踪流水号、第二业务要素、第二主键ID和处理记录;所述处理记录包括已处理的记录和未处理的记录;所述已处理的记录为已被调用且用于更新第一主键ID的记录;所述未处理的记录为未被调用的记录;
[0018]利用所述全局跟踪流水号查找所述处理记录中未处理的记录对应的第二主键ID和第二业务要素。
[0019]可选的,所述第一业务要素和第二业务要素的数量均为多个;基于所述比对结果利用所述第二主键ID更新第一主键ID,包括:
[0020]若多个所述第一业务要素和所述第二业务要素均对应上,则基于所述第一业务要素和所述第二业务要素的对应关系利用所述第二主键ID更新所述第一主键ID;
[0021]若任一所述第一业务要素与所述第二业务要素未对应上,则将多个所述第二业务要素替换掉多个所述第一业务要素,利用多个所述第二主键ID替换多个所述第一主键ID,并将替换后的主键ID以及其对应的业务要素反馈给运维人员,供运维人员查看本次替换是否存在问题。
[0022]可选的,基于所述第一业务要素和所述第二业务要素的对应关系利用所述第二主键ID更新所述第一主键ID,包括:
[0023]针对每一个第一业务要素对应的第一主键ID,确定与所述第一业务要素相匹配的第二业务要素对应的第二主键ID,并判断所述第一主键ID与所述第二主键ID是否相同;
[0024]若相同,则保留所述第一主键ID;
[0025]若不同,则利用所述第二主键ID替换所述第一主键ID。
[0026]可选的,还包括:
[0027]每隔预设周期,基于所述主键ID存储所述业务请求对应的处理记录,生成第一变更下档文件;
[0028]将所述第一变更下档文件与第二业务系统对应的第二变更下档文件进行比对;
[0029]若所述第二变更下档文件中存在的第一记录未存在于所述第一变更下档文件中,则存储所述第一记录到第二业务系统;
[0030]若所述第二变更下档文件中存在的第一记录与所述第一变更下档文件中的第二记录存在差异,则利用所述第一记录替换所述第二记录。
[0031]第二方面,本申请提供一种主键ID生成装置,所述装置包括:
[0032]接收模块,用于接收业务请求;所述业务请求为第二业务系统处理成功的业务请求;
[0033]确定模块,用于基于所述业务请求确定待生成的主键ID的数量;
[0034]处理模块,用于当待生成的主键ID的数量为多个时,基于所述业务请求生成全局跟踪流水号、多个第一主键ID以及各个主键ID对应的第一业务要素,并基于所述全局跟踪流水号调用所述第二业务系统中对应的第二主键ID和第二业务要素,通过比对所述第一业务要素和所述第二业务要素,得到比对结果,基于所述比对结果利用所述第二主键ID更新第一主键ID;
[0035]其中,每一业务请求对应唯一的所述全局跟踪流水号。
[0036]第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
[0037]所述存储器存储计算机执行指令;
[0038]所述处理器执行所述存储器存储的计算机执行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种主键ID生成方法,其特征在于,应用于第一业务系统,所述方法包括:接收业务请求;所述业务请求为第二业务系统处理成功的业务请求;基于所述业务请求确定待生成的主键ID的数量;若待生成的主键ID的数量为多个,则基于所述业务请求生成全局跟踪流水号、多个第一主键ID以及各个主键ID对应的第一业务要素,并基于所述全局跟踪流水号调用所述第二业务系统中对应的第二主键ID和第二业务要素,通过比对所述第一业务要素和所述第二业务要素,得到比对结果,基于所述比对结果利用所述第二主键ID更新第一主键ID;其中,每一业务请求对应唯一的所述全局跟踪流水号。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若待生成的主键ID的数量为一个,则调用所述第二业务系统基于所述业务请求生成的全局跟踪流水号和表名,并利用所述全局跟踪流水号和所述表名获取主键ID。3.根据权利要求2所述的方法,其特征在于,利用所述全局跟踪流水号和所述表名获取主键ID,包括:基于所述表名获取数据库中对应的表,其中,所述表用于存储全局跟踪流水号与主键ID的对应关系;利用所述全局跟踪流水号在所述表中查找对应的主键ID。4.根据权利要求1所述的方法,其特征在于,每一主键ID对应至少一个业务要素,所述业务要素为一个业务对应的多个主键ID之间不会重复出现的要素;基于所述全局跟踪流水号调用所述第二业务系统中对应的第二主键ID和第二业务要素,包括:启动轮询进程读取所述第二业务系统中预先存储表中的业务对应的处理记录;所述预先存储表用于存储第二业务系统处理业务请求生成的业务的全局跟踪流水号、第二业务要素、第二主键ID和处理记录;所述处理记录包括已处理的记录和未处理的记录;所述已处理的记录为已被调用且用于更新第一主键ID的记录;所述未处理的记录为未被调用的记录;利用所述全局跟踪流水号查找所述处理记录中未处理的记录对应的第二主键ID和第二业务要素。5.根据权利要求1所述的方法,其特征在于,所述第一业务要素和第二业务要素的数量均为多个;基于所述比对结果利用所述第二主键ID更新第一主键ID,包括:若多个所述第一业务要素和所述第二业务要素均对应上,则基于所述第一业务要素和所述第二业务要素的对应关系利用所述第二主键ID更新所述第一主键ID;若任一所述第一业务要素与所述第二业务要素未对应上,则将多个所述第二业务要素替换掉多个所述第一业务要素,利用多个所述第二主键ID替换多个所述第一主键ID,并将替换后的主键ID以及其...

【专利技术属性】
技术研发人员:刘家志
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:

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

1