CN114900531B - 数据同步方法、装置和系统 - Google Patents

数据同步方法、装置和系统 Download PDF

Info

Publication number
CN114900531B
CN114900531B CN202210476010.7A CN202210476010A CN114900531B CN 114900531 B CN114900531 B CN 114900531B CN 202210476010 A CN202210476010 A CN 202210476010A CN 114900531 B CN114900531 B CN 114900531B
Authority
CN
China
Prior art keywords
service
data table
identifier
request message
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210476010.7A
Other languages
English (en)
Other versions
CN114900531A (zh
Inventor
谢伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202210476010.7A priority Critical patent/CN114900531B/zh
Publication of CN114900531A publication Critical patent/CN114900531A/zh
Application granted granted Critical
Publication of CN114900531B publication Critical patent/CN114900531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Abstract

本发明提供了一种数据同步方法、装置和系统,特别涉及大数据技术领域,所述方法包括:根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识;确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理;根据所述业务处理的第一处理信息,进行第一数据同步;若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理;根据所述业务处理的第二处理信息,进行第二数据同步。本发明能够在实现数据增量同步的基础上提高数据同步的准确性和时效性,从而提高数据同步的灵活性。

Description

数据同步方法、装置和系统
技术领域
本发明涉及数据同步领域,特别涉及大数据技术领域,尤其涉及一种数据同步方法、装置和系统。
背景技术
现有技术的数据同步方法往往在当前数据库的数据积累到较大量时,对当前数据库的数据进行全量同步。而进行数据全量同步时往往需要将所有数据一次性地复制到新数据库中,而并不能做到根据当前数据库的随时的数据变化进行增量同步,从而导致对依赖新数据库的应用模块只能在数据全量同步完毕后才能进行验证或投产,而不是只在模块自身需要的数据完成同步后就能进行验证或投产,进而导致应用的更新或发布时间被延迟,不利于提高用户体验,数据同步的准确性和时效性较差,进而导致数据同步的灵活性较差。
发明内容
本发明的一个目的在于提供一种数据同步方法,以解决数据同步的准确性和时效性较差,进而导致数据同步的灵活性较差的问题。本发明的另一个目的在于提供一种数据同步装置。本发明的再一个目的在于提供一种数据同步系统。本发明的还一个目的在于提供一种计算机设备。本发明的还一个目的在于提供一种可读介质。
为了达到以上目的,本发明的一方面公开了一种数据同步方法,所述方法包括:
根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识;
确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理;根据所述业务处理的第一处理信息,进行第一数据同步;
若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理;根据所述业务处理的第二处理信息,进行第二数据同步。
可选的,所述确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统,包括:
根据所述用户标识和所述目标服务标识,获取所述业务数据的迁移状态标记;
判断所述迁移状态标记是否为已迁移到新系统的标记,若是,确定所述业务数据已被同步到新系统;若否,确定所述业务数据未被同步到新系统。
可选的,进一步包括:
在确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统之前,根据所述用户标识,获取用户标识的黑白名单标记;
判断所述黑白名单标记是黑名单标记还是白名单标记,若是黑名单标记,将所述业务请求报文发送至旧系统;若是白名单标记,将所述业务请求报文发送至新系统。
可选的,进一步包括:
在获取用户标识的黑白名单标记失败时,根据所述目标服务标识,获取目标服务切换开关;
判断所述目标服务切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统。
可选的,进一步包括:
在获取目标服务切换开关失败时,根据所述目标服务标识,获取所述目标服务标识对应的目标数据表标识对应的目标数据表切换开关;
判断所述目标数据表切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统。
可选的,根据客户端发送的业务请求报文,得到发起业务请求的用户标识,包括:
根据所述业务请求报文,得到用户相关信息;
根据所述用户相关信息,得到对应的所述用户标识。
可选的,进一步包括:
在所述根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识之前,获取预存的所有服务标识和所有数据表标识的对应关系;
根据所述预存的所有服务标识和所有数据表标识的对应关系,得到多个服务数据表集合;
对每个服务数据表集合中的数据表标识和服务标识,生成对应的服务切换开关的校验值和数据表切换开关的校验值;其中,同一个服务数据表集合中的所有服务标识对应的服务切换开关的校验值和所有数据表标识对应的数据表切换开关的校验值相同;
获取每个服务标识对应的服务切换开关和每个数据表标识对应的数据表切换开关,判断是否满足每个服务标识对应的服务切换开关的值与所述服务切换开关的校验值相同且每个数据表标识对应的数据表切换开关的值与所述数据表切换开关的校验值相同,若否,向工作人员发送对应的告警信息。
可选的,所述根据所述预存的所有服务标识和所有数据表标识的对应关系,得到多个服务数据表集合,包括:
选择一个服务标识作为计划迁移服务标识执行生成服务数据表集合的步骤,所述生成服务数据表集合的步骤包括:
根据所述计划迁移服务标识和所述对应关系,从配置中心获取被所述计划迁移服务进行写操作的被写数据表的被写数据表标识;
根据所述被写数据表标识和所述对应关系,从配置中心获取对所述被写数据表进行写操作的其他的服务的写服务标识;
根据所述写服务标识和所述对应关系,从配置中心获取被所述写服务进行写操作的其他的被写数据表的被写数据表标识;
重复执行所述根据所述被写数据表标识和所述对应关系,从配置中心获取对所述被写数据表进行写操作的其他的服务的写服务标识,根据所述写服务标识和所述对应关系,从配置中心获取被所述写服务进行写操作的其他的被写数据表的被写数据表标识的步骤,直到再也无法获取到其他被写数据表标识和写服务标识;
根据所述计划迁移服务标识、所有所述写服务标识和所述对应关系,从配置中心获取被所述写服务和计划迁移服务进行读操作的被读数据表的被读数据表标识;
根据所述被读数据表标识和所述对应关系,从配置中心获取对所述被读数据表进行写操作的其他的服务的次级写服务标识;
将所述计划迁移服务标识、所有被写数据表标识、所有写服务标识和所有次级写服务标识进行聚合,得到其中一个服务数据表集合;
对所述服务数据表集合外的其他服务标识,重复执行所述生成服务数据表集合的步骤直到再也无法得到其他服务数据表集合。
可选的,所述新系统包括新业务处理子系统和新数据库子系统,所述根据所述业务处理的第一处理信息,进行第一数据同步,包括:
根据所述第一处理信息,得到所述新系统的新业务处理子系统进行业务处理的第一指令;
根据所述第一指令,进行第一数据同步。
可选的,所述旧系统包括旧业务处理子系统和旧数据库子系统,所述根据所述第一指令,进行第一数据同步,包括:
将所述第一指令发送至所述旧系统的旧业务处理子系统,以使所述旧业务处理子系统执行所述第一指令,进行对旧系统的旧数据库子系统的第一数据的操作,从而完成第一数据同步。
可选的,所述根据所述第一处理信息,得到所述新系统的新业务处理子系统进行业务处理的第一指令,包括:
根据所述第一处理信息,得到第一处理日志;
对所述第一处理日志进行解析,得到所述第一指令。
可选的,所述旧系统包括旧业务处理子系统和旧数据库子系统,所述根据所述业务处理的第二处理信息,进行第二数据同步,包括:
根据所述第二处理信息,得到所述旧系统的旧业务处理子系统进行业务处理的第二指令;
根据所述第二指令,进行第二数据同步。
可选的,所述新系统包括新业务处理子系统和新数据库子系统,所述根据所述第二指令,进行第二数据同步,包括:
将所述第二指令发送至所述新系统的新业务处理子系统,以使所述新业务处理子系统执行所述第二指令,进行对新系统的新数据库子系统的第二数据的操作,从而完成第二数据同步。
可选的,所述根据所述第二处理信息,得到所述旧系统的旧业务处理子系统进行业务处理的第二指令,包括:
根据所述第二处理信息,得到第二处理日志;
对所述第二处理日志进行解析,得到所述第二指令。
为了达到以上目的,本发明的再一方面公开了一种数据同步装置,所述数据同步装置包括:
报文解析模块,用于根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识;
第一数据同步模块,用于确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理;根据所述业务处理的第一处理信息,进行第一数据同步;
第二数据同步模块,用于若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理;根据所述业务处理的第二处理信息,进行第二数据同步。
为了达到以上目的,本发明的还一方面公开了一种数据同步系统,所述数据同步系统包括数据同步装置、客户端、新系统和旧系统;
其中,所述数据同步装置用于根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识;确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理;根据所述业务处理的第一处理信息,进行第一数据同步;若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理;根据所述业务处理的第二处理信息,进行第二数据同步。
本发明还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法。
本发明还公开了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法。
本发明提供的数据同步方法、装置和系统,通过根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识,能够为后续步骤中确定业务处理的系统、确定数据同步的种类以及数据同步的操作提供所需要的输入,并能够将后续步骤中数据同步的粒度细化到单个用户的单个业务所涉及的数据,更有利于在实现数据增量同步的基础上提高数据同步的准确性。通过确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理,能够在业务数据已被同步到新系统时直接让新系统进行业务处理,用新系统进行业务处理能够提高业务处理的速度和准确性,从而提高用户的体验;通过根据所述业务处理的第一处理信息,进行第一数据同步,能够在新系统进行业务处理后,将新系统因业务处理而产生的数据变化同步至旧系统,在提高数据同步时效性的同时,能够使得新旧系统的数据尽可能一致,从而在新系统发生故障时,对于有关数据的操作还能切回到旧系统执行,减少因系统故障而影响应用的开发、验证、投产以及用户正常使用应用的概率。通过若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理,能够在业务数据未被同步到新系统时让旧系统进行业务处理;通过根据所述业务处理的第二处理信息,进行第二数据同步,能够在旧系统进行业务处理后,将旧系统因业务处理而产生的数据变化同步至新系统,进一步在提高数据同步时效性的同时,提高新旧系统数据之间的一致性,并在后续获取到同样的业务处理的请求时,能够直接让新系统进行业务处理,从而提高业务处理的速度和准确性,进而提高用户的体验。综上所述,本发明提供的数据同步方法、装置和系统,能够在实现数据增量同步的基础上提高数据同步的准确性和时效性,从而提高数据同步的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例的一种数据同步系统的示意图;
图2示出了本发明实施例的一种数据同步方法的步骤示意图;
图3示出了本发明实施例的一种可选的得到发起业务请求的用户标识的流程示意图;
图4示出了本发明实施例的一种可选的进行第一数据同步的流程示意图;
图5示出了本发明实施例的一种可选的得到第一指令的流程示意图;
图6示出了本发明实施例的一种可选的得到第二指令的流程示意图;
图7示出了本发明实施例的一种数据同步装置的模块示意图;
图8示出适于用来实现本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
关于本文中所使用的“第一”、“第二”、……等,并非特别指称次序或顺位的意思,亦非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。
需要说明的是,本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
本发明实施例公开了一种数据同步系统,如图1所示,该系统包括数据同步装置101、客户端102、新系统103和旧系统104:其中,所述数据同步装置101用于根据客户端102发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识;确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统103;若是,将所述业务请求报文发送至新系统103,以使所述新系统103根据所述业务请求报文进行业务处理;根据所述业务处理的第一处理信息,进行第一数据同步;若否,将所述业务请求报文发送至旧系统104,以使所述旧系统104根据所述业务请求报文进行业务处理;根据所述业务处理的第二处理信息,进行第二数据同步。
示例性的,所述数据同步装置101、客户端102、新系统103和旧系统104可以集成,也可以分别布置。关于数据同步装置101、客户端102、新系统103和旧系统104的具体布置方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此不做限制。
在一个优选的实施方式中,所述数据同步装置101包括但不限于接入层、第一数据同步服务器和第二数据同步服务器,其中,所述接入层用于根据客户端102发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识;确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统103;若是,将所述业务请求报文发送至新系统103,以使所述新系统103根据所述业务请求报文进行业务处理;若否,将所述业务请求报文发送至旧系统104,以使所述旧系统104根据所述业务请求报文进行业务处理;所述第一数据同步服务器用于根据所述业务处理的第一处理信息,进行第一数据同步;所述第二数据同步服务器根据所述业务处理的第二处理信息,进行第二数据同步。其中,所述接入层、第一数据同步服务器和第二数据同步服务器可以集成也可以分别设置。
下面以数据同步装置101作为执行主体为例,说明本发明实施例提供的数据同步方法的实现过程。可理解的是,本发明实施例提供的数据同步方法的执行主体包括但不限于该数据同步装置101。
基于此,本发明实施例公开了一种数据同步方法,如图2所示,该方法具体包括如下步骤:
S201:根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识。
S202:确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理;根据所述业务处理的第一处理信息,进行第一数据同步。
S203:若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理;根据所述业务处理的第二处理信息,进行第二数据同步。
示例性的,业务请求报文中包括用户标识和目标服务标识,所以能够直接根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识。所述用户标识可以为但不限于用户ID等,所述目标服务标识可以为但不限于服务名称或服务编号等。
示例性的,所述根据所述业务请求报文进行业务处理,可以为但不限于对业务请求报文进行解析得到需要调用的服务和服务将要处理的目标处理数据表,调用需要调用的服务对目标处理数据表进行处理。示例性的,所述业务请求包括但不限于查询账户余额、修改银行卡信息或更新交易记录等。需要说明的是,对于所述业务请求的具体内容和根据所述业务请求报文进行业务处理的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
本发明提供的数据同步方法、装置和系统,通过根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识,能够为后续步骤中确定业务处理的系统、确定数据同步的种类以及数据同步的操作提供所需要的输入,并能够将后续步骤中数据同步的粒度细化到单个用户的单个业务所涉及的数据,更有利于在实现数据增量同步的基础上提高数据同步的准确性。通过确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理,能够在业务数据已被同步到新系统时直接让新系统进行业务处理,用新系统进行业务处理能够提高业务处理的速度和准确性,从而提高用户的体验;通过根据所述业务处理的第一处理信息,进行第一数据同步,能够在新系统进行业务处理后,将新系统因业务处理而产生的数据变化同步至旧系统,在提高数据同步时效性的同时,能够使得新旧系统的数据尽可能一致,从而在新系统发生故障时,对于有关数据的操作还能切回到旧系统执行,减少因系统故障而影响应用的开发、验证、投产以及用户正常使用应用的概率。通过若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理,能够在业务数据未被同步到新系统时让旧系统进行业务处理;通过根据所述业务处理的第二处理信息,进行第二数据同步,能够在旧系统进行业务处理后,将旧系统因业务处理而产生的数据变化同步至新系统,进一步在提高数据同步时效性的同时,提高新旧系统数据之间的一致性,并在后续获取到同样的业务处理的请求时,能够直接让新系统进行业务处理,从而提高业务处理的速度和准确性,进而提高用户的体验。综上所述,本发明提供的数据同步方法、装置和系统,能够在实现数据增量同步的基础上提高数据同步的准确性和时效性,从而提高数据同步的灵活性。
在一个可选的实施方式中,所述确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统,包括:
根据所述用户标识和所述目标服务标识,获取所述业务数据的迁移状态标记;
判断所述迁移状态标记是否为已迁移到新系统的标记,若是,确定所述业务数据已被同步到新系统;若否,确定所述业务数据未被同步到新系统。
示例性的,所述业务数据的迁移状态标记,可以从预设的数据同步状态存储数据库中获取,所述数据同步状态存储数据库,可以为但不限于Redis(远程字典服务数据库)或HBase(结构化数据分布式存储数据库)等。示例性的,所述迁移状态标记,可以为但不限于布尔类型的数据,值可以为但不限于0或1;其中,所述迁移状态标记值为0时,表示其并不是已迁移到新系统的标记,所述迁移状态标记值为1时,表示其是已迁移到新系统的标记。由于根据用户标识和目标服务标识能够准确地定位到属于单个用户的单个服务的粒度,所以能够直接根据所述用户标识和所述目标服务标识获取所述业务数据的迁移状态标记。需要说明的是,对于根据所述用户标识和所述目标服务标识获取所述业务数据的迁移状态标记的具体实现方式和迁移状态标记的具体内容,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够根据之前的相关执行过程确定的数据同步状态标记,更准确地确定业务数据的同步状态,从而提高后续步骤中数据同步的准确性并减少数据同步时整体系统出现错误的概率。
在一个可选的实施方式中,进一步包括:
在确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统之前,根据所述用户标识,获取用户标识的黑白名单标记;
判断所述黑白名单标记是黑名单标记还是白名单标记,若是黑名单标记,将所述业务请求报文发送至旧系统;若是白名单标记,将所述业务请求报文发送至新系统。
示例性的,所述黑白名单标记,可以从预设的配置中心服务器中获取,所述配置中心服务器可以为但不限于基于Disconf(分布式配置管理平台)或Apollo(阿波罗分布式配置中心)等平台而构建分布式服务器;其中,所述黑白名单标记可以为但不限于布尔类型的数据,值可以为但不限于0或1;其中,所述黑白名单标记值为0时,表示其是黑名单标记,所述黑白名单标记值为1时,表示其是白名单标记;用户标识的黑白名单标记,可以通过系统管理员根据实际情况进行设定。由于用户标识与黑白名单标记是对应的,所以能够直接根据所述用户标识获取用户标识的黑白名单标记。需要说明的是,对于根据所述用户标识获取用户标识的黑白名单标记的具体实现方式和黑白名单标记的具体内容,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够按照发起请求的用户的粒度确定令哪个系统处理业务请求,从而对于未经许可的用户的请求不让新系统进行处理,从而防止未经许可的用户的请求为不良请求时造成新系统发生损坏或数据泄露,提高对新系统的保护程度,进而提高整体的安全性。
在一个可选的实施方式中,进一步包括:
在获取用户标识的黑白名单标记失败时,根据所述目标服务标识,获取目标服务切换开关;
判断所述目标服务切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统。
示例性的,所述目标服务切换开关,可以从预设的配置中心服务器中获取;其中,所述目标服务切换开关可以为但不限于布尔类型的数据,值可以为但不限于0或1;其中,所述目标服务切换开关值为0时,表示其对应的是旧系统,所述目标服务切换开关值为1时,表示其对应的是新系统;所述目标服务切换开关,可以通过但不限于系统管理员根据实际情况进行设定或根据之前的业务处理及数据同步的情况进行确定。由于目标服务标识与目标服务切换开关是对应的,所以能够直接根据所述目标服务标识,获取目标服务切换开关。需要说明的是,对于根据所述目标服务标识获取目标服务切换开关的具体实现方式和目标服务切换开关的具体内容,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够在获取用户标识的黑白名单标记失败时,还可以根据目标服务切换开关确定令哪个系统处理业务请求,从而能够尽可能避免在获取黑白名单标记失败时系统运行产生停滞,进而提高整体系统业务处理和数据同步的速度和效率。由于目标服务切换开关也是根据实际情况和需求确定的,所以上述步骤能够提高确定业务处理请求系统的准确性,从而提高后续步骤中数据同步的准确性。
在一个可选的实施方式中,进一步包括:
在获取目标服务切换开关失败时,根据所述目标服务标识,获取所述目标服务标识对应的目标数据表标识对应的目标数据表切换开关;
判断所述目标数据表切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统。
示例性的,所述目标数据表标识,可以为但不限于目标数据表的编号或名称等。
示例性的,所述目标数据表切换开关,可以从预设的配置中心服务器中获取;其中,所述目标数据表切换开关可以为但不限于布尔类型的数据,值可以为但不限于0或1;其中,所述目标数据表切换开关值为0时,表示其对应的是旧系统,所述目标数据表切换开关值为1时,表示其对应的是新系统;所述目标数据表切换开关,可以通过但不限于系统管理员根据实际情况进行设定或根据之前的业务处理及数据同步的情况进行确定。由于目标服务标识与目标数据表切换开关是对应的,所以能够直接根据所述目标服务标识获取所述目标服务标识对应的目标数据表标识对应的目标数据表切换开关。需要说明的是,对于根据所述目标服务标识,获取所述目标服务标识对应的目标数据表标识对应的目标数据表切换开关的具体实现方式和目标数据表切换开关的具体内容,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够在获取目标服务切换开关失败时,还可以根据目标数据表切换开关确定令哪个系统处理业务请求,从而能够尽可能避免在获取目标服务切换开关失败时系统运行产生停滞,进而提高整体系统业务处理和数据同步的速度和效率。由于目标数据表切换开关也是根据实际情况和需求确定的,所以上述步骤能够提高确定业务处理请求系统的准确性,从而提高后续步骤中数据同步的准确性。
在一个可选的实施方式中,如图3所示,所述根据客户端发送的业务请求报文,得到发起业务请求的用户标识,包括如下步骤:
S301:根据所述业务请求报文,得到用户相关信息。
S302:根据所述用户相关信息,得到对应的所述用户标识。
示例性的,所述用户相关信息,包括但不限于用户姓名、用户年龄、用户的银行卡号、用户性别或用户身份证号等。所述业务请求报文,包括部分或全部用户相关信息,所以能够直接根据所述业务请求报文,得到用户相关信息。
示例性的,所述根据所述用户相关信息,得到对应的所述用户标识,可以为但不限于根据所述用户相关信息从预设的用户标识与用户信息对应关系数据库中得到对应的用户标识;其中,所述用户标识与用户信息对应关系数据库可以为但不限于Redis或HBase等。示例性的,由于用户相关信息和用户标识存在对应关系,所以在根据用户相关信息确定用户标识时,可以通过但不限于现有的查询软件、相关程序和定位算法等实现。
通过上述步骤,能够在从业务请求报文中获取用户标识失败时,还可以根据用户相关信息得到对应的用户标识,从而能够尽可能避免在从业务请求报文中获取用户标识失败时系统运行产生停滞,进而提高整体系统业务处理和数据同步的速度和效率。通过用户相关信息和用户标识的对应性确定用户标识,也能够提高所确定的用户标识的准确性,从而提高后续步骤中业务处理和数据同步的准确性。
在一个可选的实施方式中,进一步包括:
在所述根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识之前,获取预存的所有服务标识和所有数据表标识的对应关系;
根据所述预存的所有服务标识和所有数据表标识的对应关系,得到多个服务数据表集合;
对每个服务数据表集合中的数据表标识和服务标识,生成对应的服务切换开关的校验值和数据表切换开关的校验值;其中,同一个服务数据表集合中的所有服务标识对应的服务切换开关的校验值和所有数据表标识对应的数据表切换开关的校验值相同;
获取每个服务标识对应的服务切换开关和每个数据表标识对应的数据表切换开关,判断是否满足每个服务标识对应的服务切换开关的值与所述服务切换开关的校验值相同且每个数据表标识对应的数据表切换开关的值与所述数据表切换开关的校验值相同,若否,向工作人员发送对应的告警信息。
示例性的,所述预存的所有服务标识和所有数据表标识的对应关系,可以通过但不限于从预设的配置中心服务器中获取。由于服务在运行时会对特定数据表进行操作,所以服务和数据表之间存在对应关系,因此服务标识和数据表标识之间也存在对应关系。
示例性的,所述校验值可以为但不限于对应旧系统的值或对应新系统的值,具体的,所述校验值可以为但不限于0(对应旧系统)或1(对应新系统)。需要说明的是,对于所述校验值,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述对应的告警信息,可以为但不限于“xxx服务的切换开关存在错误,若不处理则可能会影响后续系统运行,请进行确认”或“xxx数据表的切换开关存在错误,若不处理则可能会影响后续系统运行,请进行确认”等。
上述步骤中,一个服务数据表集合中的数据表标识和服务标识,是一系列在业务处理中具有相互作用及关联性的数据表和服务的标识,因此,通过上述步骤,能够对已存的每个数据表标识对应的数据表切换开关和每个服务标识对应的服务切换开关进行校验,以尽可能使相关的数据表和服务的标识具有一致性,从而使后续步骤中数据同步时能够依据这些标识将具有关联性的数据进行一并同步,从而提高数据同步的准确性并通过提高所同步的数据的一致性来减少后续进行业务处理时系统出现错误的概率。
在一个可选的实施方式中,所述根据所述预存的所有服务标识和所有数据表标识的对应关系,得到多个服务数据表集合,包括:
选择一个服务标识作为计划迁移服务标识执行生成服务数据表集合的步骤,所述生成服务数据表集合的步骤包括:
根据所述计划迁移服务标识和所述对应关系,从配置中心获取被所述计划迁移服务进行写操作的被写数据表的被写数据表标识;
根据所述被写数据表标识和所述对应关系,从配置中心获取对所述被写数据表进行写操作的其他的服务的写服务标识;
根据所述写服务标识和所述对应关系,从配置中心获取被所述写服务进行写操作的其他的被写数据表的被写数据表标识;
重复执行所述根据所述被写数据表标识和所述对应关系,从配置中心获取对所述被写数据表进行写操作的其他的服务的写服务标识,根据所述写服务标识和所述对应关系,从配置中心获取被所述写服务进行写操作的其他的被写数据表的被写数据表标识的步骤,直到再也无法获取到其他被写数据表标识和写服务标识;
根据所述计划迁移服务标识、所有所述写服务标识和所述对应关系,从配置中心获取被所述写服务和计划迁移服务进行读操作的被读数据表的被读数据表标识;
根据所述被读数据表标识和所述对应关系,从配置中心获取对所述被读数据表进行写操作的其他的服务的次级写服务标识;
将所述计划迁移服务标识、所有被写数据表标识、所有写服务标识和所有次级写服务标识进行聚合,得到其中一个服务数据表集合;
对所述服务数据表集合外的其他服务标识,重复执行所述生成服务数据表集合的步骤直到再也无法得到其他服务数据表集合。
示例性的,所述选择一个服务标识作为计划迁移服务标识,可由本领域技术人员根据实际情况确定具体选择的服务标识,也可以随机从现有的服务标识中选取。
示例性的,所述根据所述计划迁移服务标识和所述对应关系,从配置中心获取被所述计划迁移服务进行写操作的被写数据表的被写数据表标识,有如下例子:
若计划迁移服务标识为S1,而S1对标识为T3的数据表进行了写操作,则被写数据表标识为T3。
示例性的,所述根据所述被写数据表标识和所述对应关系,从配置中心获取对所述被写数据表进行写操作的其他的服务的写服务标识,有如下例子:
对于被写数据表标识为T3的数据表,除了服务S1,还有服务S2对数据表T3进行了写操作,则所述其他服务的写服务标识为S2。
示例性的,所述根据所述写服务标识和所述对应关系,从配置中心获取被所述写服务进行写操作的其他的被写数据表的被写数据表标识,有如下例子:
对于服务S2,还对数据表T2进行了写操作,则T2为所述其他的被写数据表的被写数据表标识。
示例性的,在重复执行所述根据所述被写数据表标识和所述对应关系,从配置中心获取对所述被写数据表进行写操作的其他的服务的写服务标识,根据所述写服务标识和所述对应关系,从配置中心获取被所述写服务进行写操作的其他的被写数据表的被写数据表标识的步骤,直到再也无法获取到其他被写数据表标识和写服务标识之后,对应上述示例,有如下标识:
计划迁移服务标识S1、写服务标识S2、被写数据表标识T3、被写数据表标识T2。
示例性的,所述根据所述计划迁移服务标识、所有所述写服务标识和所述对应关系,从配置中心获取被所述写服务和计划迁移服务进行读操作的被读数据表的被读数据表标识,有如下例子:
所述计划迁移服务标识S1对数据表T2进行了读操作,所述写服务标识S2对数据表T1进行了读操作,则被读数据表标识为T2和T1,其中,T2也是前述例子中的被写数据表标识。
示例性的,所述根据所述被读数据表标识和所述对应关系,从配置中心获取对所述被读数据表进行写操作的其他的服务的次级写服务标识,有如下例子:
对于被读数据表T2和T1,还有服务S3对数据表T1进行了写操作,则所述次级写服务标识为S3。
示例性的,对应上述例子,所述将所述计划迁移服务标识、所有被写数据表标识、所有写服务标识和所有次级写服务标识进行聚合,得到的其中一个服务数据表集合具体为:
{S1,S2,S3,T1,T2,T3}
需要说明的是,上述得到服务数据表集合的各个步骤中所得到的产物,需要根据实际情况进行确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够提高所确定的服务数据表集合的准确性,使得服务数据表集合中的标识所对应的服务和数据表是具有相关性和相互作用关系的,从而提高后续步骤中对已存的每个数据表标识对应的数据表切换开关和每个服务标识对应的服务切换开关进行校验的准确性,进而进一步提高后续步骤中数据同步的准确性,减少同步时出现数据冲突的可能性。
在一个优选的实施方式中,在研发投产的情景中,对于所有服务中的只写服务相关的模块,可以优先安排进行研发投产。之后,再安排所有服务中对被所述只写服务进行写操作的数据表进行读操作的只读服务相关的模块进行研发投产。然后,再安排所有服务中既进行写操作又进行读操作的服务相关的模块进行研发投产。最后,安排其他只读服务相关的模块进行研发投产。通过上述顺序,能够在实现分批研发投产的基础上,根据模块的常用程度进行排序进行研发投产,从而更好地满足用户对于应用的体验,并实现研发投产时的松耦合,提高研发投产的效率。
在一个可选的实施方式中,如图4所示,所述新系统包括新业务处理子系统和新数据库子系统,所述根据所述业务处理的第一处理信息,进行第一数据同步,包括如下步骤:
S401:根据所述第一处理信息,得到所述新系统的新业务处理子系统进行业务处理的第一指令。
S402:根据所述第一指令,进行第一数据同步。
通过上述步骤,能够实现基于实际的业务处理而导致的数据变化进行第一数据同步,从而进一步细化数据同步的粒度,更好地提高数据同步的时效性和灵活性。
在一个可选的实施方式中,所述旧系统包括旧业务处理子系统和旧数据库子系统,所述根据所述第一指令,进行第一数据同步,包括:
将所述第一指令发送至所述旧系统的旧业务处理子系统,以使所述旧业务处理子系统执行所述第一指令,进行对旧系统的旧数据库子系统的第一数据的操作,从而完成第一数据同步。
示例性的,所述第一指令的种类,包括但不限于具体的数据操作语句,例如SQL语句或DML语句等。
示例性的,所述旧业务处理子系统执行所述第一指令之前,可以根据预设的新系统服务和旧系统服务的对照表或新系统数据表结构和旧系统数据表结构的对照表等,对所述第一指令的格式进行调整,以使其符合旧系统中的指令格式,从而更有利于减少执行时出现错误的可能性。其中,对第一指令的格式进行调整,可以为但不限于增加分片字段或注解等。需要说明的是,所述将所述第一指令发送至所述旧系统的旧业务处理子系统,以使所述旧业务处理子系统执行所述第一指令,进行对旧系统的旧数据库子系统的第一数据的操作,从而完成第一数据同步的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够在新系统进行业务处理后,使旧系统也进行和新系统一样的业务处理操作,从而使得业务处理后,旧系统和新系统的数据仍然较为一致,更好地完成数据同步并提高数据的一致性。
在一个可选的实施方式中,如图5所示,所述根据所述第一处理信息,得到所述新系统的新业务处理子系统进行业务处理的第一指令,包括如下步骤:
S501:根据所述第一处理信息,得到第一处理日志。
S502:对所述第一处理日志进行解析,得到所述第一指令。
示例性的,所述第一处理信息,包括但不限于第一处理日志,所以能够直接根据所述第一处理信息,得到第一处理日志。其中,所述第一处理日志,包括但不限于业务处理的时间、业务处理的发起方、业务处理的异常标记以及业务处理所涉及的服务信息和数据表信息等。
示例性的,所述第一处理日志,可以为但不限于MySQL数据体系中的binlog日志。
示例性的,对所述第一处理日志进行解析,得到所述第一指令,为本领域常规技术手段,这里不再赘述。
通过上述步骤,能够实现基于实际的业务处理信息得到业务处理的第一指令,从而提高所得到的第一指令的准确性,进而提高后续步骤中数据同步的准确性。
在一个可选的实施方式中,所述旧系统包括旧业务处理子系统和旧数据库子系统,所述根据所述业务处理的第二处理信息,进行第二数据同步,包括:
根据所述第二处理信息,得到所述旧系统的旧业务处理子系统进行业务处理的第二指令;
根据所述第二指令,进行第二数据同步。
通过上述步骤,能够实现基于实际的业务处理而导致的数据变化进行第二数据同步,从而进一步细化数据同步的粒度,更好地提高数据同步的时效性和灵活性。
在一个可选的实施方式中,所述新系统包括新业务处理子系统和新数据库子系统,所述根据所述第二指令,进行第二数据同步,包括:
将所述第二指令发送至所述新系统的新业务处理子系统,以使所述新业务处理子系统执行所述第二指令,进行对新系统的新数据库子系统的第二数据的操作,从而完成第二数据同步。
示例性的,所述第二指令的种类,包括但不限于具体的数据操作语句,例如SQL语句或DML语句等。
示例性的,所述新业务处理子系统执行所述第二指令之前,可以根据预设的新系统服务和旧系统服务的对照表或新系统数据表结构和旧系统数据表结构的对照表等,对所述第二指令的格式进行调整,以使其符合新系统中的指令格式,从而更有利于减少执行时出现错误的可能性。其中,对第二指令的格式进行调整,可以为但不限于增加分片字段或注解等。需要说明的是,所述将所述第二指令发送至所述新系统的新业务处理子系统,以使所述新业务处理子系统执行所述第二指令,进行对新系统的新数据库子系统的第二数据的操作,从而完成第二数据同步的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够在旧系统进行业务处理后,使新系统也进行和旧系统一样的业务处理操作,从而使得业务处理后,旧系统和新系统的数据仍然较为一致,更好地完成数据同步并提高数据的一致性。
在一个可选的实施方式中,如图6所示,所述根据所述第二处理信息,得到所述旧系统的旧业务处理子系统进行业务处理的第二指令,包括如下步骤:
S601:根据所述第二处理信息,得到第二处理日志。
S602:对所述第二处理日志进行解析,得到所述第二指令。
示例性的,所述第二处理信息,包括但不限于第二处理日志,所以能够直接根据所述第二处理信息,得到第二处理日志。其中,所述第二处理日志,包括但不限于业务处理的时间、业务处理的发起方、业务处理的异常标记以及业务处理所涉及的服务信息和数据表信息等。
示例性的,所述第二处理日志,可以为但不限于MySQL数据体系中的binlog日志。
示例性的,对所述第二处理日志进行解析,得到所述第二指令,为本领域常规技术手段,这里不再赘述。
通过上述步骤,能够实现基于实际的业务处理信息得到业务处理的第二指令,从而提高所得到的第二指令的准确性,进而提高后续步骤中数据同步的准确性。
在一个优选的实施方式中,进一步包括:
在将所述第一指令发送至所述旧系统的旧业务处理子系统之前,判断所述旧数据库子系统中是否存在第一指令的第一指令对象数据表,若否,向工作人员进行告警。
示例性的,所述第一指令的种类包括但不限于对表插入数据的insert指令、对表进行内容删除的delete指令或对表进行更新的update指令等。
示例性的,所述第一指令对象数据表,具体为被第一指令进行相应操作的数据表,例如,若第一指令为将数据abc插入到数据表甲,则第一指令对象数据表为数据表甲。
示例性的,所述告警,可以通过但不限于应用中的异常捕获及抛出代码输出对应的异常信息进行告警。需要说明的是,对于向工作人员进行告警的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够在不存在第一指令对象数据表时,使旧系统停止进行数据同步,减少旧系统出现死锁而导致停止运行的概率。
在一个优选的实施方式中,进一步包括:
在判断所述旧数据库子系统中存在第一指令的第一指令对象数据表时,根据所述第一处理信息得到业务处理的第一时间戳;
根据所述第一指令对象数据表,得到对所述第一指令对象数据表进行最后一次操作的第二时间戳;
判断所述第二时间戳小于所述第一时间戳、所述第二时间戳等于所述第一时间戳还是所述第二时间戳大于所述第一时间戳;
若所述第二时间戳小于所述第一时间戳,则执行所述将所述第一指令发送至所述旧系统的旧业务处理子系统,以使所述旧业务处理子系统执行所述第一指令,进行对旧系统的旧数据库子系统的第一数据的操作,从而完成第一数据同步的步骤;
若所述第二时间戳等于所述第一时间戳,则不执行所述将所述第一指令发送至所述旧系统的旧业务处理子系统,以使所述旧业务处理子系统执行所述第一指令,进行对旧系统的旧数据库子系统的第一数据的操作,从而完成第一数据同步的步骤;
若所述第二时间戳大于所述第一时间戳,则向工作人员进行告警。
示例性的,所述第一处理信息包括第一时间戳,所以能够直接根据所述第一处理信息得到业务处理的第一时间戳,其中,所述第一时间戳表示新系统进行业务处理的时间,例如,第一时间戳可以为但不限于诸如202002181619的标记时间的字符串。需要说明的是,对于第一时间戳的格式和内容,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述根据所述第一指令对象数据表,得到对所述第一指令对象数据表进行最后一次操作的第二时间戳,可以通过访问旧系统的相关日志或记录信息等方式实现;例如,第二时间戳可以为但不限于诸如202102191530的标记时间的字符串。需要说明的是,对于第二时间戳的格式和内容以及根据所述第一指令对象数据表得到对所述第一指令对象数据表进行最后一次操作的第二时间戳的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述向工作人员进行告警,为本领域常规技术手段,这里不再赘述。
在所述第二时间戳小于所述第一时间戳时,说明业务处理的时间晚于对相关数据表进行最后一次操作的时间,根据业务处理的信息对相关数据表的数据进行对应修改实现数据同步不会造成系统错误。在所述第二时间戳等于所述第一时间戳时,说明业务处理的时间等于对相关数据表进行最后一次操作的时间,此时若根据业务处理的信息对相关数据表的数据进行对应修改实现数据同步,则有可能造成重复同步导致额外耗费不必要的时间和资源,因此不再进行同步以节省数据同步的时间和资源。在所述第二时间戳大于所述第一时间戳时,说明业务处理的时间早于对相关数据表进行最后一次操作的时间,这种情况说明应用中已存在系统性的错误,因此,在这种情况下进行告警能够使工作人员及时对错误进行修正,从而有利于应用的正常运行及数据同步的正常进行。
在一个优选的实施方式中,所述将所述第一指令发送至所述旧系统的旧业务处理子系统,包括:
将所述第一指令发送到分布式消息队列服务器,以使所述分布式消息队列服务器将所述第一指令发送至所述旧系统的旧业务处理子系统。
示例性的,所述分布式消息队列服务器可以为但不限于kafka服务器。
通过设置分布式消息队列服务器,能够起到中转作用,使发送第一指令的时间和旧系统接收第一指令的时间不必非常接近,提高了第一指令的传送灵活度,更有利于旧系统的旧业务处理子系统根据其处理速度和处理能力有批量地接收所述第一指令,减少因过载而导致故障的可能性。
在一个优选的实施方式中,进一步包括:
在所述进行第一数据同步之后,生成第一数据同步的第一同步日志记录;
将所述第一同步日志记录进行备份;
对应的,所述方法还包括:
按预设时间间隔判断是否存在异常的第一同步日志记录,若是,根据所述异常的第一同步日志记录,重新执行进行第一数据同步的步骤。
示例性的,所述第一同步日志记录包括但不限于第一数据同步的时间、第一数据同步所涉及的数据库语句指令、第一数据同步所涉及的数据表和服务等。
示例性的,所述备份,可以为但不限于将第一同步日志记录存储到预设的第一同步日志记录存储数据库中。
示例性的,所述预设时间间隔,可以设定为但不限于24小时等。需要说明的是,对于所述预设时间间隔,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述判断是否存在异常的第一同步日志记录,可以为但不限于通过访问第一同步日志记录中的记载同步成功情况的字段,并根据所述记载同步成功情况的字段的内容来判断。需要说明的是,所述按预设时间间隔判断是否存在异常的第一同步日志记录的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,在根据所述异常的第一同步日志记录,重新执行进行第一数据同步的步骤后,还可以根据修复情况生成修复记录,所述修复记录包括但不限于重新执行进行第一数据同步的步骤的时间、原因等,所述修复记录也可以被展示给工作人员。
通过上述步骤,能够在第一数据同步失败时,通过重新同步来实现数据修复,减少因第一数据同步失败而对旧系统中的数据造成损坏的概率。
在一个优选的实施方式中,进一步包括:
在将所述第二指令发送至所述新系统的新业务处理子系统之前,判断所述新数据库子系统中是否存在第二指令的第二指令对象数据表,若否,向工作人员进行告警。
示例性的,所述第二指令的种类包括但不限于对表插入数据的insert指令、对表进行内容删除的delete指令或对表进行更新的update指令等。
示例性的,所述第二指令对象数据表,具体为被第二指令进行相应操作的数据表,例如,若第二指令为对数据表乙中的内容为def的数据进行删除,则第二指令对象数据表为数据表乙。
示例性的,所述告警,可以通过但不限于应用中的异常捕获及抛出代码输出对应的异常信息进行告警。需要说明的是,对于向工作人员进行告警的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够在不存在第二指令对象数据表时,使新系统停止进行数据同步,减少新系统出现死锁而导致停止运行的概率。
在一个优选的实施方式中,进一步包括:
在判断所述新数据库系统中存在第二指令的第二指令对象数据表时,根据所述第二处理信息得到业务处理的第三时间戳;
根据所述第二指令对象数据表,得到对所述第二指令对象数据表进行最后一次操作的第四时间戳;
判断所述第四时间戳小于所述第三时间戳、所述第四时间戳等于所述第三时间戳还是所述第四时间戳大于所述第三时间戳;
若所述第四时间戳小于所述第三时间戳,则执行所述将所述第二指令发送至所述新系统的新业务处理子系统,以使所述新业务处理子系统执行所述第二指令,进行对新系统的新数据库子系统的第二数据的操作,从而完成第二数据同步的步骤;
若所述第四时间戳等于所述第三时间戳,则不执行所述将所述第二指令发送至所述新系统的新业务处理子系统,以使所述新业务处理子系统执行所述第二指令,进行对新系统的新数据库子系统的第二数据的操作,从而完成第二数据同步的步骤;
若所述第四时间戳大于所述第三时间戳,则向工作人员进行第四告警。
示例性的,所述第二处理信息包括第三时间戳,所以能够直接根据所述第二处理信息得到业务处理的第三时间戳,其中,所述第三时间戳表示旧系统进行业务处理的时间,例如,第三时间戳可以为但不限于诸如202103151230的标记时间的字符串。需要说明的是,对于第三时间戳的格式和内容,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述根据所述第二指令对象数据表,得到对所述第二指令对象数据表进行最后一次操作的第四时间戳,可以通过访问新系统的相关日志或记录信息等方式实现;例如,第四时间戳可以为但不限于诸如202203201530的标记时间的字符串。需要说明的是,对于第四时间戳的格式和内容以及根据所述第二指令对象数据表得到对所述第二指令对象数据表进行最后一次操作的第四时间戳的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述向工作人员进行告警,为本领域常规技术手段,这里不再赘述。
示例性的,在完成第二数据同步之后,还包括将被同步的数据的迁移状态标记修改为已迁移到新系统的标记。
示例性的,在完成第二数据同步之后,还包括将第二数据同步所涉及的服务切换开关设置为对应新系统的值。
示例性的,在完成第二数据同步之后,还包括将第二数据同步所涉及的数据表切换开关设置为对应新系统的值。
在所述第四时间戳小于所述第三时间戳时,说明业务处理的时间晚于对相关数据表进行最后一次操作的时间,根据业务处理的信息对相关数据表的数据进行对应修改实现数据同步不会造成系统错误。在所述第四时间戳等于所述第三时间戳时,说明业务处理的时间等于对相关数据表进行最后一次操作的时间,此时若根据业务处理的信息对相关数据表的数据进行对应修改实现数据同步,则有可能造成重复同步导致额外耗费不必要的时间和资源,因此不再进行同步以节省数据同步的时间和资源。在所述第四时间戳大于所述第三时间戳时,说明业务处理的时间早于对相关数据表进行最后一次操作的时间,这种情况说明应用中已存在系统性的错误,因此,在这种情况下进行告警能够使工作人员及时对错误进行修正,从而有利于应用的正常运行及数据同步的正常进行。
在一个优选的实施方式中,所述将所述第二指令发送至所述新系统的新业务处理子系统,包括:
将所述第二指令发送到分布式消息队列服务器,以使所述分布式消息队列服务器将所述第二指令发送至所述新系统的新业务处理子系统。
示例性的,所述分布式消息队列服务器可以为但不限于kafka服务器。
通过设置分布式消息队列服务器,能够起到中转作用,使发送第二指令的时间和新系统接收第二指令的时间不必非常接近,提高了第二指令的传送灵活度,更有利于新系统的新业务处理子系统根据其处理速度和处理能力有批量地接收所述第二指令,减少因过载而导致故障的可能性。
在一个优选的实施方式中,进一步包括:
在所述进行第二数据同步之后,生成第二数据同步的第二同步日志记录;
将所述第二同步日志记录进行备份;
对应的,所述方法还包括:
按预设时间间隔判断是否存在异常的第二同步日志记录,若是,根据所述异常的第二同步日志记录,重新执行进行第二数据同步的步骤。
示例性的,所述第二同步日志记录包括但不限于第二数据同步的时间、第二数据同步所涉及的数据库语句指令、第二数据同步所涉及的数据表和服务等。
示例性的,所述备份,可以为但不限于将第二同步日志记录存储到预设的第二同步日志记录存储数据库中。
示例性的,所述预设时间间隔,可以设定为但不限于12小时等。需要说明的是,对于所述预设时间间隔,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述判断是否存在异常的第二同步日志记录,可以为但不限于通过访问第二同步日志记录中的记载同步成功情况的字段,并根据所述记载同步成功情况的字段的内容来判断。需要说明的是,所述按预设时间间隔判断是否存在异常的第二同步日志记录的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,在根据所述异常的第二同步日志记录,重新执行进行第二数据同步的步骤后,还可以根据修复情况生成修复记录,所述修复记录包括但不限于重新执行进行第二数据同步的步骤的时间、原因等,所述修复记录也可以被展示给工作人员。
通过上述步骤,能够在第二数据同步失败时,通过重新同步来实现数据修复,减少因第二数据同步失败而对旧系统中的数据造成损坏的概率。
基于相同原理,本发明实施例公开了一种数据同步装置700,如图7所示,所述数据同步装置700包括:
报文解析模块701,用于根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识;
第一数据同步模块702,用于确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理;根据所述业务处理的第一处理信息,进行第一数据同步;
第二数据同步模块703,用于若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理;根据所述业务处理的第二处理信息,进行第二数据同步。
在一个可选的实施方式中,所述第一数据同步模块702,用于:
根据所述用户标识和所述目标服务标识,获取所述业务数据的迁移状态标记;
判断所述迁移状态标记是否为已迁移到新系统的标记,若是,确定所述业务数据已被同步到新系统;若否,确定所述业务数据未被同步到新系统。
在一个可选的实施方式中,还包括黑白名单标记判定模块,用于:
在确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统之前,根据所述用户标识,获取用户标识的黑白名单标记;
判断所述黑白名单标记是黑名单标记还是白名单标记,若是黑名单标记,将所述业务请求报文发送至旧系统;若是白名单标记,将所述业务请求报文发送至新系统。
在一个可选的实施方式中,还包括目标服务切换开关判定模块,用于:
在获取用户标识的黑白名单标记失败时,根据所述目标服务标识,获取目标服务切换开关;
判断所述目标服务切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统。
在一个可选的实施方式中,还包括目标数据表切换开关判定模块,用于:
在获取目标服务切换开关失败时,根据所述目标服务标识,获取所述目标服务标识对应的目标数据表标识对应的目标数据表切换开关;
判断所述目标数据表切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统。
在一个可选的实施方式中,所述报文解析模块701,用于:
根据所述业务请求报文,得到用户相关信息;
根据所述用户相关信息,得到对应的所述用户标识。
在一个可选的实施方式中,还包括切换开关校验模块,用于:
在所述根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识之前,获取预存的所有服务标识和所有数据表标识的对应关系;
根据所述预存的所有服务标识和所有数据表标识的对应关系,得到多个服务数据表集合;
对每个服务数据表集合中的数据表标识和服务标识,生成对应的服务切换开关的校验值和数据表切换开关的校验值;其中,同一个服务数据表集合中的所有服务标识对应的服务切换开关的校验值和所有数据表标识对应的数据表切换开关的校验值相同;
获取每个服务标识对应的服务切换开关和每个数据表标识对应的数据表切换开关,判断是否满足每个服务标识对应的服务切换开关的值与所述服务切换开关的校验值相同且每个数据表标识对应的数据表切换开关的值与所述数据表切换开关的校验值相同,若否,向工作人员发送对应的告警信息。
在一个可选的实施方式中,所述切换开关校验模块,用于:
选择一个服务标识作为计划迁移服务标识执行生成服务数据表集合的步骤,所述生成服务数据表集合的步骤包括:
根据所述计划迁移服务标识和所述对应关系,从配置中心获取被所述计划迁移服务进行写操作的被写数据表的被写数据表标识;
根据所述被写数据表标识和所述对应关系,从配置中心获取对所述被写数据表进行写操作的其他的服务的写服务标识;
根据所述写服务标识和所述对应关系,从配置中心获取被所述写服务进行写操作的其他的被写数据表的被写数据表标识;
重复执行所述根据所述被写数据表标识和所述对应关系,从配置中心获取对所述被写数据表进行写操作的其他的服务的写服务标识,根据所述写服务标识和所述对应关系,从配置中心获取被所述写服务进行写操作的其他的被写数据表的被写数据表标识的步骤,直到再也无法获取到其他被写数据表标识和写服务标识;
根据所述计划迁移服务标识、所有所述写服务标识和所述对应关系,从配置中心获取被所述写服务和计划迁移服务进行读操作的被读数据表的被读数据表标识;
根据所述被读数据表标识和所述对应关系,从配置中心获取对所述被读数据表进行写操作的其他的服务的次级写服务标识;
将所述计划迁移服务标识、所有被写数据表标识、所有写服务标识和所有次级写服务标识进行聚合,得到其中一个服务数据表集合;
对所述服务数据表集合外的其他服务标识,重复执行所述生成服务数据表集合的步骤直到再也无法得到其他服务数据表集合。
在一个可选的实施方式中,所述第一数据同步模块702,用于:
根据所述第一处理信息,得到所述新系统的新业务处理子系统进行业务处理的第一指令;
根据所述第一指令,进行第一数据同步。
在一个可选的实施方式中,所述第一数据同步模块702,用于:
将所述第一指令发送至所述旧系统的旧业务处理子系统,以使所述旧业务处理子系统执行所述第一指令,进行对旧系统的旧数据库子系统的第一数据的操作,从而完成第一数据同步。
在一个可选的实施方式中,所述第一数据同步模块702,用于:
根据所述第一处理信息,得到第一处理日志;
对所述第一处理日志进行解析,得到所述第一指令。
在一个可选的实施方式中,所述第二数据同步模块703,用于:
根据所述第二处理信息,得到所述旧系统的旧业务处理子系统进行业务处理的第二指令;
根据所述第二指令,进行第二数据同步。
在一个可选的实施方式中,所述第二数据同步模块703,用于:
将所述第二指令发送至所述新系统的新业务处理子系统,以使所述新业务处理子系统执行所述第二指令,进行对新系统的新数据库子系统的第二数据的操作,从而完成第二数据同步。
在一个可选的实施方式中,所述第二数据同步模块703,用于:
根据所述第二处理信息,得到第二处理日志;
对所述第二处理日志进行解析,得到所述第二指令。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法。
下面参考图8,其示出了适于用来实现本申请实施例的计算机设备800的结构示意图。
如图8所示,计算机设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM))803中的程序而执行各种适当的工作和处理。在RAM803中,还存储有系统800操作所需的各种程序和数据。CPU801、ROM802、以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装如存储部分808。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (14)

1.一种数据同步方法,其特征在于,包括:
根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识;
确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;
若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理;根据所述业务处理的第一处理信息,进行第一数据同步;
若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理;根据所述业务处理的第二处理信息,进行第二数据同步;
在所述根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识之前,获取预存的所有服务标识和所有数据表标识的对应关系;
根据所述预存的所有服务标识和所有数据表标识的对应关系,得到多个服务数据表集合;
对每个服务数据表集合中的数据表标识和服务标识,生成对应的服务切换开关的校验值和数据表切换开关的校验值;其中,同一个服务数据表集合中的所有服务标识对应的服务切换开关的校验值和所有数据表标识对应的数据表切换开关的校验值相同;
获取每个服务标识对应的服务切换开关和每个数据表标识对应的数据表切换开关,判断是否满足每个服务标识对应的服务切换开关的值与所述服务切换开关的校验值相同且每个数据表标识对应的数据表切换开关的值与所述数据表切换开关的校验值相同,若否,向工作人员发送对应的告警信息;
其中,确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统,若是,将所述业务请求报文发送至新系统,若否,将所述业务请求报文发送至旧系统,包括:
在确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统之前,根据所述用户标识,获取用户标识的黑白名单标记;
判断所述黑白名单标记是黑名单标记还是白名单标记,若是黑名单标记,将所述业务请求报文发送至旧系统;若是白名单标记,将所述业务请求报文发送至新系统;
在获取用户标识的黑白名单标记失败时,根据所述目标服务标识,获取目标服务切换开关;
判断所述目标服务切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统;
在获取目标服务切换开关失败时,根据所述目标服务标识,获取所述目标服务标识对应的目标数据表标识对应的目标数据表切换开关;
判断所述目标数据表切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统。
2.根据权利要求1所述的方法,其特征在于,所述确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统,包括:
根据所述用户标识和所述目标服务标识,获取所述业务数据的迁移状态标记;
判断所述迁移状态标记是否为已迁移到新系统的标记,若是,确定所述业务数据已被同步到新系统;若否,确定所述业务数据未被同步到新系统。
3.根据权利要求1所述的方法,其特征在于,根据客户端发送的业务请求报文,得到发起业务请求的用户标识,包括:
根据所述业务请求报文,得到用户相关信息;
根据所述用户相关信息,得到对应的所述用户标识。
4.根据权利要求3所述的方法,其特征在于,所述根据所述预存的所有服务标识和所有数据表标识的对应关系,得到多个服务数据表集合,包括:
选择一个服务标识作为计划迁移服务标识执行生成服务数据表集合的步骤,所述生成服务数据表集合的步骤包括:
根据所述计划迁移服务标识和所述对应关系,从配置中心获取被所述计划迁移服务进行写操作的被写数据表的被写数据表标识;
根据所述被写数据表标识和所述对应关系,从配置中心获取对所述被写数据表进行写操作的其他的服务的写服务标识;
根据所述写服务标识和所述对应关系,从配置中心获取被所述写服务进行写操作的其他的被写数据表的被写数据表标识;
重复执行所述根据所述被写数据表标识和所述对应关系,从配置中心获取对所述被写数据表进行写操作的其他的服务的写服务标识,根据所述写服务标识和所述对应关系,从配置中心获取被所述写服务进行写操作的其他的被写数据表的被写数据表标识的步骤,直到再也无法获取到其他被写数据表标识和写服务标识;
根据所述计划迁移服务标识、所有所述写服务标识和所述对应关系,从配置中心获取被所述写服务和计划迁移服务进行读操作的被读数据表的被读数据表标识;
根据所述被读数据表标识和所述对应关系,从配置中心获取对所述被读数据表进行写操作的其他的服务的次级写服务标识;
将所述计划迁移服务标识、所有被写数据表标识、所有写服务标识和所有次级写服务标识进行聚合,得到其中一个服务数据表集合;
对所述服务数据表集合外的其他服务标识,重复执行所述生成服务数据表集合的步骤直到再也无法得到其他服务数据表集合。
5.根据权利要求1所述的方法,其特征在于,所述新系统包括新业务处理子系统和新数据库子系统,所述根据所述业务处理的第一处理信息,进行第一数据同步,包括:
根据所述第一处理信息,得到所述新系统的新业务处理子系统进行业务处理的第一指令;
根据所述第一指令,进行第一数据同步。
6.根据权利要求5所述的方法,其特征在于,所述旧系统包括旧业务处理子系统和旧数据库子系统,所述根据所述第一指令,进行第一数据同步,包括:
将所述第一指令发送至所述旧系统的旧业务处理子系统,以使所述旧业务处理子系统执行所述第一指令,进行对旧系统的旧数据库子系统的第一数据的操作,从而完成第一数据同步。
7.根据权利要求5所述的方法,其特征在于,所述根据所述第一处理信息,得到所述新系统的新业务处理子系统进行业务处理的第一指令,包括:
根据所述第一处理信息,得到第一处理日志;
对所述第一处理日志进行解析,得到所述第一指令。
8.根据权利要求1所述的方法,其特征在于,所述旧系统包括旧业务处理子系统和旧数据库子系统,所述根据所述业务处理的第二处理信息,进行第二数据同步,包括:
根据所述第二处理信息,得到所述旧系统的旧业务处理子系统进行业务处理的第二指令;
根据所述第二指令,进行第二数据同步。
9.根据权利要求8所述的方法,其特征在于,所述新系统包括新业务处理子系统和新数据库子系统,所述根据所述第二指令,进行第二数据同步,包括:
将所述第二指令发送至所述新系统的新业务处理子系统,以使所述新业务处理子系统执行所述第二指令,进行对新系统的新数据库子系统的第二数据的操作,从而完成第二数据同步。
10.根据权利要求8所述的方法,其特征在于,所述根据所述第二处理信息,得到所述旧系统的旧业务处理子系统进行业务处理的第二指令,包括:
根据所述第二处理信息,得到第二处理日志;
对所述第二处理日志进行解析,得到所述第二指令。
11.一种数据同步装置,其特征在于,包括:
报文解析模块,用于根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识;
在所述根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识之前,获取预存的所有服务标识和所有数据表标识的对应关系,根据所述预存的所有服务标识和所有数据表标识的对应关系,得到多个服务数据表集合,对每个服务数据表集合中的数据表标识和服务标识,生成对应的服务切换开关的校验值和数据表切换开关的校验值;其中,同一个服务数据表集合中的所有服务标识对应的服务切换开关的校验值和所有数据表标识对应的数据表切换开关的校验值相同,获取每个服务标识对应的服务切换开关和每个数据表标识对应的数据表切换开关,判断是否满足每个服务标识对应的服务切换开关的值与所述服务切换开关的校验值相同且每个数据表标识对应的数据表切换开关的值与所述数据表切换开关的校验值相同,若否,向工作人员发送对应的告警信息;
第一数据同步模块,用于确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理;根据所述业务处理的第一处理信息,进行第一数据同步;
第二数据同步模块,用于若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理;根据所述业务处理的第二处理信息,进行第二数据同步;
其中,确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统,若是,将所述业务请求报文发送至新系统,若否,将所述业务请求报文发送至旧系统,包括:
在确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统之前,根据所述用户标识,获取用户标识的黑白名单标记;
判断所述黑白名单标记是黑名单标记还是白名单标记,若是黑名单标记,将所述业务请求报文发送至旧系统;若是白名单标记,将所述业务请求报文发送至新系统;
在获取用户标识的黑白名单标记失败时,根据所述目标服务标识,获取目标服务切换开关;
判断所述目标服务切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统;
在获取目标服务切换开关失败时,根据所述目标服务标识,获取所述目标服务标识对应的目标数据表标识对应的目标数据表切换开关;
判断所述目标数据表切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统。
12.一种数据同步系统,其特征在于,包括数据同步装置、客户端、新系统和旧系统;
其中,所述数据同步装置用于根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识;确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统;若是,将所述业务请求报文发送至新系统,以使所述新系统根据所述业务请求报文进行业务处理;根据所述业务处理的第一处理信息,进行第一数据同步;若否,将所述业务请求报文发送至旧系统,以使所述旧系统根据所述业务请求报文进行业务处理;根据所述业务处理的第二处理信息,进行第二数据同步;
所述数据同步装置还用于在所述根据客户端发送的业务请求报文,得到发起业务请求的用户标识和目标服务标识之前,获取预存的所有服务标识和所有数据表标识的对应关系;根据所述预存的所有服务标识和所有数据表标识的对应关系,得到多个服务数据表集合;对每个服务数据表集合中的数据表标识和服务标识,生成对应的服务切换开关的校验值和数据表切换开关的校验值;其中,同一个服务数据表集合中的所有服务标识对应的服务切换开关的校验值和所有数据表标识对应的数据表切换开关的校验值相同;获取每个服务标识对应的服务切换开关和每个数据表标识对应的数据表切换开关,判断是否满足每个服务标识对应的服务切换开关的值与所述服务切换开关的校验值相同且每个数据表标识对应的数据表切换开关的值与所述数据表切换开关的校验值相同,若否,向工作人员发送对应的告警信息;
其中,确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统,若是,将所述业务请求报文发送至新系统,若否,将所述业务请求报文发送至旧系统,包括:
在确定所述用户标识和所述目标服务标识对应的业务数据是否已被同步到新系统之前,根据所述用户标识,获取用户标识的黑白名单标记;
判断所述黑白名单标记是黑名单标记还是白名单标记,若是黑名单标记,将所述业务请求报文发送至旧系统;若是白名单标记,将所述业务请求报文发送至新系统;
在获取用户标识的黑白名单标记失败时,根据所述目标服务标识,获取目标服务切换开关;
判断所述目标服务切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统;
在获取目标服务切换开关失败时,根据所述目标服务标识,获取所述目标服务标识对应的目标数据表标识对应的目标数据表切换开关;
判断所述目标数据表切换开关对应的是旧系统还是新系统,若是旧系统,将所述业务请求报文发送至旧系统;若是新系统,将所述业务请求报文发送至新系统。
13.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-10中任一项所述方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10中任一项所述方法。
CN202210476010.7A 2022-04-29 2022-04-29 数据同步方法、装置和系统 Active CN114900531B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210476010.7A CN114900531B (zh) 2022-04-29 2022-04-29 数据同步方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210476010.7A CN114900531B (zh) 2022-04-29 2022-04-29 数据同步方法、装置和系统

Publications (2)

Publication Number Publication Date
CN114900531A CN114900531A (zh) 2022-08-12
CN114900531B true CN114900531B (zh) 2024-02-27

Family

ID=82720137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210476010.7A Active CN114900531B (zh) 2022-04-29 2022-04-29 数据同步方法、装置和系统

Country Status (1)

Country Link
CN (1) CN114900531B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114298830A (zh) * 2021-12-28 2022-04-08 中国邮政储蓄银行股份有限公司 批量业务的处理方法、装置与批量业务处理平台
CN114358921A (zh) * 2022-01-07 2022-04-15 中国工商银行股份有限公司 系统切换方法、装置、设备、介质和程序产品

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114298830A (zh) * 2021-12-28 2022-04-08 中国邮政储蓄银行股份有限公司 批量业务的处理方法、装置与批量业务处理平台
CN114358921A (zh) * 2022-01-07 2022-04-15 中国工商银行股份有限公司 系统切换方法、装置、设备、介质和程序产品

Also Published As

Publication number Publication date
CN114900531A (zh) 2022-08-12

Similar Documents

Publication Publication Date Title
CN108228814B (zh) 数据同步方法及装置
CN110083581B (zh) 一种日志追溯的方法、装置、存储介质及计算机设备
CN110659259A (zh) 数据库迁移方法、服务器以及计算机存储介质
CN111784318A (zh) 数据处理方法、装置、电子设备及存储介质
CN110688305B (zh) 测试环境同步方法、装置、介质、电子设备
CN112835885A (zh) 一种分布式表格存储的处理方法、装置及系统
CN111522881B (zh) 业务数据处理方法、装置、服务器及存储介质
CN112363980A (zh) 一种分布式系统的数据处理方法及装置
CN114900531B (zh) 数据同步方法、装置和系统
CN111159311B (zh) 一种数据映射集成的方法、装置、设备及存储介质
CN112699129A (zh) 一种数据处理系统、方法及装置
CN111061576B (zh) 一种实体对象的创建方法及系统
CN111080250B (zh) 流程回退补偿方法、装置、存储介质及电子设备
CN112667651A (zh) 一种数据通信方法及装置
CN112860746B (zh) 一种基于缓存削减的方法、设备及系统
CN117131071B (zh) 一种数据处理方法、装置、电子设备及计算机可读介质
CN114650287B (zh) 一种数据文件的断点续做方法、装置和系统
CN114546705B (zh) 操作响应方法、操作响应装置、电子设备以及存储介质
US10423475B2 (en) Stateful tokens for communicating with external services
CN117891794A (zh) 日志的生成方法、装置、终端设备及存储介质
CN115190015A (zh) 软负载系统配置方法、装置、计算机设备和存储介质
CN113656380A (zh) 数据生命周期管理方法及装置
CN117149702A (zh) 一种业务数据的处理方法及相关设备
CN115114244A (zh) 业务数据唯一性处理方法和装置
CN116049245A (zh) 一种数据调用关系查询处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant