一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种平台分库和交易主键分表的方法、装置及存储介质与流程

2023-03-29 10:38:42 来源:中国专利 TAG:

个分表payment_mappings_0,...,pay ment_mappings_xx,...payment_mappings_n
2-1,其中out_order_no.hashcode是对字符串的一个运算得到一个数值;
15.步骤7:接将消费转账交易报文中的交易配对信息落表payment_mappings_xx;
16.步骤8:接步骤7,至此交易信息和交易配对信息,都已经按配置落到的对应的分库和分表,交易信息落到表payments_xx,交易配对信息落到表payment_mappings_xx,交易再发往账户模块记账,记账成功或失败后,将记账结果更新到交易信息表payments_xx中status状态字段,更新时,根据步骤1,2,3,4找到对应的分库分表,然后更新;
17.步骤9:接步骤8,平台方可通过交易订单号来查询交易终态,根据步骤1,2,3得到分库后,使用交易订单号out_order_no.hashcode/n2取模运算得到对应的分表,获取payment_mappings数据得到out_order_no对应的payment_id,再根据步骤4得到交易信息表的分表,进而得到消费转账交易信息,然后返回给调用方。
18.上述技术方案中,m取值为4,n取值为16,n1取值为16,n2取值为16。
19.本发明还提供了一种平台分库和交易主键分表的装置,包括以下模块:
20.平台类型判别模块:接收到平台发过来的消费转账交易报文,做基本校验后,通过shardingjdc配置的分库分表策略实现存储交易信息表payments_xx和交易信息配对表payment_mappings_xx,其中_xx为数字变量序号,根据交易信息表payments_xx分库策略配置,对消费转账交易报文中的平台id信息root_mch_id判断,该平台是否是配置的大交易量平台;
21.大交易量平台分库模块:如该平台是配置的大交易量平台,大交易量平台根据配置指定独享分库,m个分库作为大平台独立使用;
22.普通平台分库模块:如该平台不是配置的大交易量平台,根据平台root_mch_id/n取模运算得到对应的分库,n个分库给所有不是大数据量交易的平台共享使用;
23.交易信息表分表模块:到交易的分库后,根据交易信息表payments_xx分表策略配置使用消费转账交易报文中的交易主键payment_id/n1取模运算得到对应的分表,每个库n1个分表payments_0,payments_1,

,payments_xx,...payments_n
1-l;
24.交易信息入表模块:将消费转账交易报中的交易信息写入到对应的payments_xx;
25.交易配对表分表模块:在普通平台分库模块确定的同一个库中要再存储一个以交易订单号为分表依据的交易配对表paymentmappings_xx,该配对表只存储主键out_order_no交易订单号,payment_id交易主键id,root_mch_id平台id,根据交易配对表payment_mappings_xx分表策略配置使用交易订单号out_order_no.hashcode/n2取模运算得到对应的分表,每个库n2个分表payment_mappings_0,...,payment_mappings_xx,...payment_mappings_n
2-1,其中out_order_no.hashcode是对字符串的一个运算得到一个数值;
26.交易配对信息落表模块:接将消费转账交易报文中的交易配对信息落表payment_mappings_xx;
27.记账状态更新模块:交易信息和交易配对信息,都已经按配置落到的对应的分库和分表,交易信息落到表paymentsxx,交易配对信息落到表payment_mappings_xx,交易再发往账户模块记账,记账成功或失败后,将记账结果更新到交易信息表payments_xx中status状态字段,更新时,根据步骤1,2,3,4找到对应的分库分表,然后更新;
28.调用模块:平台方可通过交易订单号来查询交易终态,根据步骤1.2,3得到分库
后,使用交易订单号out_order_no.hashcode/n2取模运算得到对应的分表,获取payment_mappings数据得到out_order_no对应的payment_id,再根据步骤4得到交易信息表的分表,进而得到消费转账交易信息,然后返回给调用方。
29.上述技术方案中,m取值为4,n取值为16,n1取值为16,n2取值为16。
30.本发明还提供了一种存储介质,处理器执行程序时,实现如权利要求1-2任一所述的一种平台分库和交易主键分表的方法。
31.因为本发明采用了上述技术方案,因此具备以下有益效果:
32.1、本发明基于shardingjdbc分库分表,能支持30亿的数据量,按每天200w的数据可支持4年。
33.2、本发明基于平台分库,可按平台id取模运算得到共享库或者指定独享库。独享库可以防止大数据量的平台导致各个分库资源不均,可以单独指定一个或多个大数据量的平台占用某个独享库。
34.3、本发明基于平台分库后,再基于交易分表。而且支持交易主键和交易订单号2个维度的查询操作。
35.4、本提案基于可按平台(渠道)业务量大小不同配置的shardingjdbc分库策略,和按交易主键和交易订单号2个业务维度的分表策略。通过可配置的方式,轻松实现大数据量的交易实时存储和查询。
附图说明
36.图1为交易创建分库分表流程图;
37.图2为交易订单号查询流程图。
具体实施方式
38.以下将对本发明的实施例给出详细的说明。尽管本发明将结合一些具体实施方式进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,对本发明进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。
39.另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员将理解,没有这些具体细节,本发明同样可以实施。
40.一种平台分库和交易主键分表的方法,其特征在于,包括以下步骤:
41.步骤1:接收到平台发过来的消费转账交易报文,做基本校验后,通过shardingjdc配置的分库分表策略实现存储交易信息表payments_xx和交易信息配对表payment_mappings_xx,,其中_xx为数字变量序号,根据交易信息表payments_xx分库策略配置,对消费转账交易报文中的平台id信息root_mchid判断,该平台是否是配置的大交易量平台,其中_xx为数字变量序号。
42.步骤2:接步骤1,如该平台是配置的大交易量平台,大交易量平台根据配置指定独享分库trade61-trade65,m个分库作为大平台独立使用;
43.步骤3:接步骤1,如该平台不是配置的大交易量平台,根据平台root_mch_id/16取模运算得到对应的分库trade01-trade16,16个分库给所有不是大数据量交易的平台共享使用;
44.步骤4:接步骤2,步骤3得到交易的分库后,根据交易信息表payments_xx分表策略配置使用消费转账交易报文中的交易主键payment_id/16取模运算得到对应的分表,每个库16个分表payments_0,payments_1,

,payments_xx,

payments_15:
45.步骤5:接步骤4,将消费转账交易报中的交易信息写入到对应的payments_xx;
46.步骤6:接步骤3,在步骤3确定的同一个库中要再存储一个以交易订单号为分表依据的交易配对表payment_mappings_xx,该配对表只存储主键out_order_no交易订单号,payment_id交易主键id,root_mch_id平台id,根据交易配对表payment_mappings_xx分表策略配置使用交易订单号out_order_no.hashcode/16取模运算得到对应的分表,每个库16个分表payment_mappings_0,

,payment_mappings_xx,

payment_mappings_15,其中out_order_no.hashcode是对字符串的一个运算得到一个数值;
47.步骤7:接将消费转账交易报文中的交易配对信息落表payment_mappings_xx;
48.步骤8:接步骤7,至此交易信息和交易配对信息,都已经按配置落到的对应的分库和分表,交易信息落到表payments_xx,交易配对信息落到表payment_mappings_xx,交易再发往账户模块记账,记账成功或失败后,将记账结果更新到交易信息表payments_xx中status状态字段,更新时,根据步骤1,2,3,4找到对应的分库分表,然后更新;
49.步骤9:接步骤8,平台方,可通过交易订单号来查询交易终态,根据步骤1,2,3得到分库后,使用交易订单号out_order_no.hashcode/16取模运算得到对应的分表(每个库16个分表payment_mappings_0

payment_mappings_15)。获取payment_mappings数据得到out_order_no对应的payment_id。再根据步骤4得到payments的分表,进而得到消费转账交易信息,然后返回给调用方。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献