业务处理方法及其装置、电子设备及存储介质与流程

文档序号:33017666发布日期:2023-01-20 17:31阅读:39来源:国知局
业务处理方法及其装置、电子设备及存储介质与流程

1.本发明涉及金融科技领域,具体而言,涉及一种业务处理方法及其装置、电子设备及存储介质。


背景技术:

2.目前,随着大量用户访问电商应用,要求电商应用的服务都要有支持高并发、高响应等特点的能力。例如商品系统,在促销开始时的0秒时刻,就要高并发地把几十万的活动商品,进行快速批量修改商品上架状态的操作。如果想在响应时间为毫秒级别就能修改大量商品信息状态,就要把业务逻辑中一些功能(如监控、日志、统计、缓存同步等)从业务主逻辑中解耦拆分出来。
3.相关技术中,业务解耦方案主要使用消息中间件,通过在服务接口业务中增加发送消息的方式,然后异步的处理消息,来达到业务削峰解耦。以网上支付为例,第一步先在用户账户上扣款,第二步短信通知用户支付成功。为了提高支付功能接口处理速度,可以使用消息队列的方式来解耦,那就要在支付接口中,只处理扣款,扣款成功就返回结果。把处理短信通知的功能,修改成给消息队列发送消息,让订阅消息的程序来异步处理短信通知的功能,以达到提高支付功能接口处理速度的目的。
4.然而,通过以上方式进行业务解耦,系统会变的更加复杂,要考虑消息重复处理,消息顺序等问题,又因为依赖消息中间件,一但消息中间件故障,系统就会崩溃,降低了系统的可用性。并且,如果在异步处理的多个消息中只有部分成功,页面还是返回了成功,就会最终导致数据不一致,造成不一致问题。
5.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

6.本发明实施例提供了一种业务处理方法及其装置、电子设备及存储介质,以至少解决相关技术中需要依赖消息中间件进行业务处理,处理效率较低且容易导致数据不一致的技术问题。
7.根据本发明实施例的一个方面,提供了一种业务处理方法,应用于预设消费端,包括:接收预设服务端发送的目标业务的变更消息数据,其中,所述变更消息数据包括:数据库配置文件;依据所述数据库配置文件,启动目标线程;采用所述目标线程识别所述变更消息数据中同一事务的事务中的数据,并将所述事务中的数据存入至预设内存数组;处理所述预设内存数组中的所有所述事务中的数据,得到处理结果。
8.可选地,在接收预设服务端发送的目标业务的变更消息数据之前,还包括:通过所述预设服务端为每个数据库配置数据库配置信息以及消息过滤规则配置信息,其中,所述数据库位于不同或相同的数据源;通过所述预设服务端基于所述数据库配置信息以及所述消息过滤规则配置信息,为每个所述数据库生成所述数据库配置文件。
9.可选地,在为每个所述数据库生成所述数据库配置文件之后,还包括:通过所述预
设服务端监听数据库日志;通过所述预设服务端依据所述数据库日志,获取位点信息,其中,所述位点信息至少包括:数据更新时间点;通过所述预设服务端接入预设服务注册中心,并依据所述位点信息从所述预设服务注册中心中获取所述变更消息数据。
10.可选地,通过所述预设服务端接入预设服务注册中心的步骤,包括:通过所述预设服务端依据所述数据库配置信息,配置与所述目标业务对应的业务数据的数据库地址以及表地址;通过所述预设服务端基于所述数据库地址以及所述表地址,配置预设服务地址;通过所述预设服务端依据所述预设服务地址,接入所述预设服务注册中心,其中,所述预设服务注册中心用于记录数据库日志的位点信息,所述预设服务注册中心获取与所述位点信息对应的数据库数据。
11.可选地,采用所述目标线程识别所述变更消息数据中同一事务的事务中的数据的步骤,包括:依据消息体类型,采用所述目标线程识别所述变更消息数据中为同一事务的操作数据,其中,所述消息体类型包括:事务开始、事务中、事务结束;基于所述操作数据,获取同一事务的所述事务中的数据。
12.可选地,处理所述预设内存数组中的所有所述事务中的数据,得到处理结果的步骤,包括:采用预设应用解析所述预设内存数组中的所有所述事务中的数据,得到解析数据;依据所述目标业务的业务规则,过滤所述解析数据,得到所述处理结果,其中,所述处理结果包括:处理数据,所述处理数据包括:对所述目标业务进行更新前和更新后的数据、对所述目标业务进行操作的操作类型、操作的数据库标识和表标识。
13.可选地,在处理所述预设内存数组中的所有所述事务中的数据,得到处理结果之后,还包括:依据所述目标业务的业务需求,将所述处理数据中涉及异步任务处理的表标识发送至与所述业务需求对应的处理系统,其中,所述处理系统依据所述业务需求,对所述表标识指示的目标表以及所述目标表中的字段进行业务逻辑处理,得到异步任务处理结果;组装不同处理系统的所述异步任务处理结果,得到处理结果数据;将所述处理结果数据存储至预设数据库。
14.根据本发明实施例的另一方面,还提供了一种业务处理装置,应用于预设消费端,包括:接收单元,用于接收预设服务端发送的目标业务的变更消息数据,其中,所述变更消息数据包括:数据库配置文件;启动单元,用于依据所述数据库配置文件,启动目标线程;识别单元,用于采用所述目标线程识别所述变更消息数据中同一事务的事务中的数据,并将所述事务中的数据存入至预设内存数组;处理单元,用于处理所述预设内存数组中的所有所述事务中的数据,得到处理结果。
15.可选地,所述业务处理装置还包括:第一配置模块,用于在接收预设服务端发送的目标业务的变更消息数据之前,通过所述预设服务端为每个数据库配置数据库配置信息以及消息过滤规则配置信息,其中,所述数据库位于不同或相同的数据源;第一生成模块,用于通过所述预设服务端基于所述数据库配置信息以及所述消息过滤规则配置信息,为每个所述数据库生成所述数据库配置文件。
16.可选地,所述业务处理装置还包括:第一监听模块,用于在为每个所述数据库生成所述数据库配置文件之后,通过所述预设服务端监听数据库日志;第一获取模块,用于通过所述预设服务端依据所述数据库日志,获取位点信息,其中,所述位点信息至少包括:数据更新时间点;第一接入模块,用于通过所述预设服务端接入预设服务注册中心,并依据所述
位点信息从所述预设服务注册中心中获取所述变更消息数据。
17.可选地,所述第一接入模块包括:第一配置子模块,用于通过所述预设服务端依据所述数据库配置信息,配置与所述目标业务对应的业务数据的数据库地址以及表地址;第二配置子模块,用于通过所述预设服务端基于所述数据库地址以及所述表地址,配置预设服务地址;第一接入子模块,用于通过所述预设服务端依据所述预设服务地址,接入所述预设服务注册中心,其中,所述预设服务注册中心用于记录数据库日志的位点信息,所述预设服务注册中心获取与所述位点信息对应的数据库数据。
18.可选地,所述识别单元包括:第一识别模块,用于依据消息体类型,采用所述目标线程识别所述变更消息数据中为同一事务的操作数据,其中,所述消息体类型包括:事务开始、事务中、事务结束;第二获取模块,用于基于所述操作数据,获取同一事务的所述事务中的数据。
19.可选地,所述处理单元包括:第一解析模块,用于采用预设应用解析所述预设内存数组中的所有所述事务中的数据,得到解析数据;第一过滤模块,用于依据所述目标业务的业务规则,过滤所述解析数据,得到所述处理结果,其中,所述处理结果包括:处理数据,所述处理数据包括:对所述目标业务进行更新前和更新后的数据、对所述目标业务进行操作的操作类型、操作的数据库标识和表标识。
20.可选地,所述业务处理装置还包括:第一发送模块,用于在处理所述预设内存数组中的所有所述事务中的数据,得到处理结果之后,依据所述目标业务的业务需求,将所述处理数据中涉及异步任务处理的表标识发送至与所述业务需求对应的处理系统,其中,所述处理系统依据所述业务需求,对所述表标识指示的目标表以及所述目标表中的字段进行业务逻辑处理,得到异步任务处理结果;第一组装模块,用于组装不同处理系统的所述异步任务处理结果,得到处理结果数据;第一存储模块,用于将所述处理结果数据存储至预设数据库。
21.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述业务处理方法。
22.根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述业务处理方法。
23.在本公开中,接收预设服务端发送的目标业务的变更消息数据,依据数据库配置文件,启动目标线程,采用目标线程识别变更消息数据中同一事务的事务中的数据,并将事务中的数据存入至预设内存数组,处理预设内存数组中的所有事务中的数据,得到处理结果。在本公开中,可以通过预设消费端接收预设服务端从数据库采集的目标业务的变更消息数据,然后根据对应的数据库配置文件,启动目标线程,以识别该变更消息数据中同一事务的事务中的数据,并将该事务中的所有事务中的数据存入至预设内存数组,以达到统一处理同一事务消息的目的,通过预设消费端以及预设服务端能够提高处理业务的效率,并且将同一事务的数据存入内存数组中进行统一处理,能够保证数据的顺序性以及一致性,进而解决了相关技术中需要依赖消息中间件进行业务处理,处理效率较低且容易导致数据不一致的技术问题。
附图说明
24.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
25.图1是根据本发明实施例的一种可选的业务处理方法的流程图;
26.图2是根据本发明实施例的一种可选的获取变更消息数据的流程图;
27.图3是根据本发明实施例的一种可选的业务处理系统架构的示意图;
28.图4是根据本发明实施例的一种可选的业务处理装置的示意图;
29.图5是根据本发明实施例的一种用于业务处理方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
30.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
31.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
32.需要说明的是,本公开中的业务处理方法及其装置可用于金融科技领域在进行业务处理的情况下,也可用于除金融科技领域之外的任意领域在进行业务处理的情况下,本公开中对业务处理方法及其装置的应用领域不做限定。
33.需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
34.本发明下述各实施例可应用于各种进行业务处理的系统/应用/设备中。本发明适用于高并发场景下非侵入式的业务解耦处理,能够在不侵入业务系统代码的情况下,对数亿级别的海量数据,进行异步任务处理,包括:缓存数据同步,合规数据监控,日志处理,数据统计分析,数据一致性检查等异步任务处理,能够采用无侵入的异步方式实现功能解耦,实现近实时的响应业务功能。
35.下面结合各个实施例来详细说明本发明。
36.实施例一
37.根据本发明实施例,提供了一种业务处理方法的实施例,需要说明的是,在附图的
流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
38.图1是根据本发明实施例的一种可选的业务处理方法的流程图,如图1所示,该方法包括如下步骤:
39.步骤s101,接收预设服务端发送的目标业务的变更消息数据,其中,变更消息数据包括:数据库配置文件。
40.步骤s102,依据数据库配置文件,启动目标线程。
41.步骤s103,采用目标线程识别变更消息数据中同一事务的事务中的数据,并将事务中的数据存入至预设内存数组。
42.步骤s104,处理预设内存数组中的所有事务中的数据,得到处理结果。
43.通过上述步骤,可以接收预设服务端发送的目标业务的变更消息数据,依据数据库配置文件,启动目标线程,采用目标线程识别变更消息数据中同一事务的事务中的数据,并将事务中的数据存入至预设内存数组,处理预设内存数组中的所有事务中的数据,得到处理结果。在本发明实施例中,可以通过预设消费端接收预设服务端从数据库采集的目标业务的变更消息数据,然后根据对应的数据库配置文件,启动目标线程,以识别该变更消息数据中同一事务的事务中的数据,并将该事务中的所有事务中的数据存入至预设内存数组,以达到统一处理同一事务消息的目的,通过预设消费端以及预设服务端能够提高处理业务的效率,并且将同一事务的数据存入内存数组中进行统一处理,能够保证数据的顺序性以及一致性,进而解决了相关技术中需要依赖消息中间件进行业务处理,处理效率较低且容易导致数据不一致的技术问题。
44.下面结合上述各步骤对本发明实施例进行详细说明。本发明实施例可应用于预设消费端。
45.一种可选地实施例,在接收预设服务端发送的目标业务的变更消息数据之前,还包括:通过预设服务端为每个数据库配置数据库配置信息以及消息过滤规则配置信息,其中,数据库位于不同或相同的数据源;通过预设服务端基于数据库配置信息以及消息过滤规则配置信息,为每个数据库生成数据库配置文件。
46.在本发明实施例中,引入了预设服务端(如canalserver服务,即一种架构服务,能够提供数据采集功能,实现从数据库(如mysql数据库)中采集数据,并发送给预设消费端(如canalclient服务,一种用于消费数据的架构服务)),预设服务端能够为每个数据库配置数据库配置信息和消息过滤规则配置信息(数据库位于不同或相同的数据源),然后可以根据数据库配置信息以及消息过滤规则配置信息,为每个数据库生成数据库配置文件(即在预设服务端可以将数据库配置信息和消息过滤规则配置信息,按数据库数量拆分成多个配置文件,每个数据库对应有一个配置文件),以便于系统在投产之后按业务规则灵活处理数据库表中的消息分发,并且消息过滤规则可通过正则表达式来配置。
47.可选地,在为每个数据库生成数据库配置文件之后,还包括:通过预设服务端监听数据库日志;通过预设服务端依据数据库日志,获取位点信息,其中,位点信息至少包括:数据更新时间点;通过预设服务端接入预设服务注册中心,并依据位点信息从预设服务注册中心中获取变更消息数据。
48.在本发明实施例中,预设服务端能够模拟数据库从库,监听数据库主库的数据库日志(如binlog日志),从而在无代码侵入下,做到数据近实时同步,同时即使面临海量数据,也不会对数据库造成压力,也不会对线上业务造成影响。
49.在本发明实施例中,预设服务端可以监听数据库日志,然后依据数据库日志,获取位点信息(该位点信息至少包括:数据更新时间点),并能够接入预设服务注册中心(如zookeeper注册中心,该zookeeper用于记录数据库日志的操作位点信息,即当前数据库操作的数据更新时间点,能够监控数据处理情况,并能够通过位点信息判断是否有延迟),并可以依据位点信息从预设服务注册中心中获取变更消息数据(即能够根据位点信息,从预设服务注册中心中匹配到相同的位点信息,以通过预设服务注册中心中匹配到的位点信息从数据库中获取变更消息数)。
50.图2是根据本发明实施例的一种可选的获取变更消息数据的流程图,如图2所示,该方法包括如下步骤:
51.步骤s201,通过预设服务端监听数据库日志;
52.步骤s202,通过预设服务端依据数据库日志,获取位点信息,其中,位点信息至少包括:数据更新时间点;
53.步骤s203,通过预设服务端接入预设服务注册中心,并依据位点信息从预设服务注册中心中获取变更消息数据。
54.可选地,通过预设服务端接入预设服务注册中心的步骤,包括:通过预设服务端依据数据库配置信息,配置与目标业务对应的业务数据的数据库地址以及表地址;通过预设服务端基于数据库地址以及表地址,配置预设服务地址;通过预设服务端依据预设服务地址,接入预设服务注册中心,其中,预设服务注册中心用于记录数据库日志的位点信息,预设服务注册中心获取与位点信息对应的数据库数据。
55.在本发明实施例中,预设服务端可以依据数据库配置信息,配置与目标业务对应的业务数据的数据库地址以及表地址,然后根据数据库地址以及表地址,配置预设服务地址,再依据预设服务地址,接入预设服务注册中心(即预设服务端可以按照业务特点配置需要采集的数据库地址和对应的表,并配置预设服务地址,以接入预设服务注册中心),该预设服务注册中心用于记录数据库日志的位点信息,以监控数据处理情况,并且预设服务注册中心能够获取与位点信息对应的数据库数据。
56.步骤s101,接收预设服务端发送的目标业务的变更消息数据,其中,变更消息数据包括:数据库配置文件。
57.在本发明实施例中,预设服务端采集到目标业务的变更消息数据后,可以将变更消息数据发送给预设消费端,预设消费端接收到变更消息数据后,能够依据变更消息数据中携带的数据库配置文件处理该变更消息数据,以近实时实现对目标业务进行修改,并记录所有修改数据。
58.步骤s102,依据数据库配置文件,启动目标线程。
59.在本发明实施例中,每个数据库都对应一个预设服务端的一个数据库配置文件,预设消费端可以根据预设服务端的数据库配置文件启动单独的处理线程来变更消息数据,这样多个数据库中的变更消息数据不会混乱,并且单个线程中的变更消息数据也是有顺序的,因此,预设消费端可以依据数据库配置文件,启动相应的目标线程。
60.步骤s103,采用目标线程识别变更消息数据中同一事务的事务中的数据,并将事务中的数据存入至预设内存数组。
61.可选地,采用目标线程识别变更消息数据中同一事务的事务中的数据的步骤,包括:依据消息体类型,采用目标线程识别变更消息数据中为同一事务的操作数据,其中,消息体类型包括:事务开始、事务中、事务结束;基于操作数据,获取同一事务的事务中的数据。
62.在本发明实施例中,在预设消费端的处理线程中,可以先根据消息体类型区分是否为同一个事务的操作,消息体类型包括:事务开始transactionbegin、事务中rowdata、事务结束transactionend三种消息类型(即依据消息体类型,采用目标线程识别变更消息数据中为同一事务的操作数据),然后通过把事务开始类型消息transactionbegin和事务结束类型消息transactionend之间的事务中rowdata类型消息收集到一个list内存数组中(即基于操作数据,获取同一事务的事务中的数据,并将事务中的数据存入至预设内存数组),以达到将同一个事务的消息一起处理的目的。
63.步骤s104,处理预设内存数组中的所有事务中的数据,得到处理结果。
64.可选地,处理预设内存数组中的所有事务中的数据,得到处理结果的步骤,包括:采用预设应用解析预设内存数组中的所有事务中的数据,得到解析数据;依据目标业务的业务规则,过滤解析数据,得到处理结果,其中,处理结果包括:处理数据,处理数据包括:对目标业务进行更新前和更新后的数据、对目标业务进行操作的操作类型、操作的数据库标识和表标识。
65.在本发明实施例中,可以采用预设应用(如canalapi)解析预设内存数组中的所有事务中的数据,得到解析数据,然后依据目标业务的业务规则,过滤解析数据,得到处理结果,该处理结果包括:处理数据,处理数据包括:对目标业务进行更新前和更新后的数据、对目标业务进行操作的操作类型(如更新update、删除delete、插入insert等)、操作的数据库标识和表标识等数据。
66.可选地,在处理预设内存数组中的所有事务中的数据,得到处理结果之后,还包括:依据目标业务的业务需求,将处理数据中涉及异步任务处理的表标识发送至与业务需求对应的处理系统,其中,处理系统依据业务需求,对表标识指示的目标表以及目标表中的字段进行业务逻辑处理,得到异步任务处理结果;组装不同处理系统的异步任务处理结果,得到处理结果数据;将处理结果数据存储至预设数据库。
67.在本发明实施例中,可以依据目标业务的业务需求,将处理数据中涉及异步任务处理的表标识发送至与业务需求对应的处理系统,然后处理系统可以依据业务需求,对表标识指示的目标表以及目标表中的字段进行业务逻辑处理,得到异步任务处理结果(即将这些需要做异步任务处理的表和表中的字段按业务需求进行业务逻辑处理),之后组装不同处理系统的异步任务处理结果,得到处理结果数据,再将处理结果数据存储至预设数据库(即将组装好的异步任务处理结果数据,存储到预设数据库(如任务处理结果数据库,也可以使用其它文件系统或非关系型数据库等来存储处理结果数据)。
68.例如,图书库中对商品分类信息的修改,canalclient服务收到数据变更消息后,可以异步把商品类目系统的数据进行更新,在分布式系统中达到数据最终一致。再例如,商品库中对价格的修改,canalclient服务收到数据变更消息后,可以异步把价格系统中的价
格数据进行修改同步,并且都不会对原系统有改动。
69.下面结合另一种可选的具体实施方式进行详细说明。
70.图3是根据本发明实施例的一种可选的业务处理系统架构的示意图,如图3所示,包括:多个数据库(如数据库a、数据库b、数据库c等)、预设服务端、预设消费端、预设数据库,其中,
71.预设服务端提供数据采集功能,从数据库采集数据,发送给预设消费端。
72.预设消费端按业务特点对采集到的数据进行分析、过滤等一系列加工处理,然后存入到预设数据库中。
73.本实施例中,业务处理系统可以由编程语言(如java)实现后端服务,能够横向扩展到其他应用,适用于所有需要记录数据库操作的场景。
74.本实施例可以选用开源架构服务canalserver服务从数据库采集数据。canal具有如下特点:canal能够模拟数据库从库监听数据库主库的数据库日志,无代码侵入,能做到数据近实时同步,同时即使面临海量数据,也不会对数据库造成压力,不会对线上业务造成影响。
75.下面详细介绍预设服务端和预设消费端的处理流程:
76.(1)预设服务端按业务特点配置需要采集的数据库地址和对应的表,并配置预设服务地址接入预设服务注册中心(预设服务注册中心用于记录数据库日志的操作位点信息,即当前数据库操作的数据更新时间点,能够监控数据处理情况,并能够通过位点信息判断是否有延迟)。由于各业务系统的数据库采用分库分表的架构部署方式,在预设服务端可以将数据库配置信息和消息过滤规则配置信息,按数据库数量拆分成多个配置文件,方便各业务系统在投产之后按业务规则灵活处理数据库表中的消息分发,消息过滤规则可以通过正则表达式来配置,最后把采集的变更消息数据发送给预设消费端。
77.(2)预设消费端接收预设服务端发送的数据,由于每一个数据库都对应一个预设服务端的一个数据库配置文件,预设消费端可以根据预设服务端的数据库配置文件启动单独的处理线程来处理消息,这样多个数据库中的消息不会混乱并且单个线程中的消息也是有顺序的。在预设消费端的处理线程中,可以先根据消息体类型区分是否为同一个事务的操作,消息体类型有包括:事务开始transactionbegin、事务中的数据rowdata、事务结束transactionend三种消息类型,通过把事务开始类型消息transactionbegin和事务结束类型消息transactionend之间的rowdata类型消息收集到一个list内存数组中,以达到将一个事务的消息一起处理的目的。
78.再对一个事务内的list内存数组中的数据通过预设应用进行解析和过滤,能够得到更新前和更新后的数据、操作类型(update、delete、insert)、操作的数据库名和表名等处理数据。之后,可以将处理数据中需要做异步任务处理的表和表中的字段按业务需求进行业务逻辑处理,最后将组装好的异步任务处理结果数据,存储到预设数据库中。
79.本发明实施例中,通过引入预设服务端和预设消费端,能够对高并发场景下分库分表的业务系统进行不侵入业务系统代码的业务解耦处理,能够保证消息的有序性,实现近实时性的数据异步处理,以达到对业务的非侵入异步解耦处理目的。同时,本实施例无代码侵入不影响线上业务系统,支持每天数亿级别的数据进行近实时的异步任务处理,对采用mysql数据库的系统能够快速集成异步任务系统,减少系统接入成本。
80.下面结合另一实施例进行详细说明。
81.实施例二
82.本实施例中提供的一种业务处理装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
83.图4是根据本发明实施例的一种可选的业务处理装置的示意图,如图4所示,该处理装置可以包括:接收单元40,启动单元41,识别单元42,处理单元43,其中,
84.接收单元40,用于接收预设服务端发送的目标业务的变更消息数据,其中,变更消息数据包括:数据库配置文件;
85.启动单元41,用于依据数据库配置文件,启动目标线程;
86.识别单元42,用于采用目标线程识别变更消息数据中同一事务的事务中的数据,并将事务中的数据存入至预设内存数组;
87.处理单元43,用于处理预设内存数组中的所有事务中的数据,得到处理结果。
88.上述处理装置,可以通过接收单元40接收预设服务端发送的目标业务的变更消息数据,通过启动单元41依据数据库配置文件,启动目标线程,通过识别单元42采用目标线程识别变更消息数据中同一事务的事务中的数据,并将事务中的数据存入至预设内存数组,通过处理单元43处理预设内存数组中的所有事务中的数据,得到处理结果。在本发明实施例中,可以通过预设消费端接收预设服务端从数据库采集的目标业务的变更消息数据,然后根据对应的数据库配置文件,启动目标线程,以识别该变更消息数据中同一事务的事务中的数据,并将该事务中的所有事务中的数据存入至预设内存数组,以达到统一处理同一事务消息的目的,通过预设消费端以及预设服务端能够提高处理业务的效率,并且将同一事务的数据存入内存数组中进行统一处理,能够保证数据的顺序性以及一致性,进而解决了相关技术中需要依赖消息中间件进行业务处理,处理效率较低且容易导致数据不一致的技术问题。
89.可选地,业务处理装置还包括:第一配置模块,用于在接收预设服务端发送的目标业务的变更消息数据之前,通过预设服务端为每个数据库配置数据库配置信息以及消息过滤规则配置信息,其中,数据库位于不同或相同的数据源;第一生成模块,用于通过预设服务端基于数据库配置信息以及消息过滤规则配置信息,为每个数据库生成数据库配置文件。
90.可选地,业务处理装置还包括:第一监听模块,用于在为每个数据库生成数据库配置文件之后,通过预设服务端监听数据库日志;第一获取模块,用于通过预设服务端依据数据库日志,获取位点信息,其中,位点信息至少包括:数据更新时间点;第一接入模块,用于通过预设服务端接入预设服务注册中心,并依据位点信息从预设服务注册中心中获取变更消息数据。
91.可选地,第一接入模块包括:第一配置子模块,用于通过预设服务端依据数据库配置信息,配置与目标业务对应的业务数据的数据库地址以及表地址;第二配置子模块,用于通过预设服务端基于数据库地址以及表地址,配置预设服务地址;第一接入子模块,用于通过预设服务端依据预设服务地址,接入预设服务注册中心,其中,预设服务注册中心用于记录数据库日志的位点信息,预设服务注册中心获取与位点信息对应的数据库数据。
92.可选地,识别单元包括:第一识别模块,用于依据消息体类型,采用目标线程识别
变更消息数据中为同一事务的操作数据,其中,消息体类型包括:事务开始、事务中、事务结束;第二获取模块,用于基于操作数据,获取同一事务的事务中的数据。
93.可选地,处理单元包括:第一解析模块,用于采用预设应用解析预设内存数组中的所有事务中的数据,得到解析数据;第一过滤模块,用于依据目标业务的业务规则,过滤解析数据,得到处理结果,其中,处理结果包括:处理数据,处理数据包括:对目标业务进行更新前和更新后的数据、对目标业务进行操作的操作类型、操作的数据库标识和表标识。
94.可选地,业务处理装置还包括:第一发送模块,用于在处理预设内存数组中的所有事务中的数据,得到处理结果之后,依据目标业务的业务需求,将处理数据中涉及异步任务处理的表标识发送至与业务需求对应的处理系统,其中,处理系统依据业务需求,对表标识指示的目标表以及目标表中的字段进行业务逻辑处理,得到异步任务处理结果;第一组装模块,用于组装不同处理系统的异步任务处理结果,得到处理结果数据;第一存储模块,用于将处理结果数据存储至预设数据库。
95.上述的处理装置还可以包括处理器和存储器,上述接收单元40,启动单元41,识别单元42,处理单元43等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
96.上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来处理预设内存数组中的所有事务中的数据,得到处理结果。
97.上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
98.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收预设服务端发送的目标业务的变更消息数据,依据数据库配置文件,启动目标线程,采用目标线程识别变更消息数据中同一事务的事务中的数据,并将事务中的数据存入至预设内存数组,处理预设内存数组中的所有事务中的数据,得到处理结果。
99.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的业务处理方法。
100.根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的业务处理方法。
101.图5是根据本发明实施例的一种用于业务处理方法的电子设备(或移动设备)的硬件结构框图。如图5所示,电子设备可以包括一个或多个(图中采用502a、502b,
……
,502n来示出)处理器502(处理器502可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器504。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图5中所示更多或者更少的组
件,或者具有与图5所示不同的配置。
102.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
103.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
104.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
105.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
106.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
107.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
108.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1