掌桥专利:专业的专利平台
掌桥专利
首页

一种数据禁写方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 18:58:26


一种数据禁写方法、装置、电子设备及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种数据禁写方法、装置、电子设备及存储介质。

背景技术

异地容灾,顾名思义就是在不同的地域,构建一套或者多套相同的应用或者数据库,起到灾难后立刻接管的作用。异地容灾对企业应用及数据库起到了安全性、业务连续性等方面的作用。

随着企业规模的扩展,用户原有意识中的数据备份已经无法满足关键业务对系统的可用性、实时性、安全性的需要。更重要的是备份的数据往往会因为各种因素而遭到毁坏,如地震、火灾、丢失等。异地容灾解决方案的出现则可通过在不同地点建立备份系统,从而进一步提高数据抵抗各种可能安全因素的容灾能力。

在异地多活容灾场景中,一般是给业务流量打上标签,根据标签将业务流量分发到域名系统(Domain Name System,DNS)的不同区域的数据库中,当业务故障,需要对业务流量进行切换时,如图1所示,需将标签1和标签2各自的业务流量将转发到区域2,当在标签1的业务流量1进行切换之前,用户1已经请求了数据变更,且业务流量1已经基于网络层的网关,进入了区域1中的应用层APP1进行相关处理;而在业务流量切换时,用户1对同一个数据(业务流量1)又发起了新的数据变更请求;在进行异地双向同步时,由于两个区域的数据都发生了变更,从而导致数据同步失败,从而使得回切后数据出现不一致的问题。

因此,在异地多活容灾场景中,如何保持数据处理的一致性是目前亟须解决的问题。

发明内容

本申请提供了一种数据禁写方法,用以保持数据处理的一致性。

第一方面,提供一种数据禁写方法,包括:

获取待处理的业务流量,并对所述业务流量进行解析;若解析出所述业务流量携带有流量标签,则确定所述业务流量所属的数据库操作类型;若确定所述数据库操作类型存在禁写功能,则从配置中心中获取与所述数据库操作类型相关联的禁写配置规则;将所述流量标签与所述禁写配置规则进行匹配,得到匹配结果;根据所述匹配结果,对所述业务流量执行数据库禁写操作或数据库变更操作。

可选的,所述业务流量包括数据库标识;所述确定所述业务流量所属的数据库操作类型,包括:

根据所述数据库标识,查询数据库记录表;根据所述数据库记录表,确定所述业务流量所属的数据库操作类型;所述确定所述数据库操作类型存在禁写功能,包括:

若所述数据库记录表中记录所述数据库操作类型存在禁写功能,则确定所述数据库操作类型存在禁写功能。

可选的,所述根据所述匹配结果,对所述业务流量执行数据库禁写操作或数据库变更操作,包括:

若所述匹配结果为成功,则对所述业务流量执行数据库禁写操作;若所述匹配结果为失败,则对所述业务流量执行数据库变更操作。

可选的,所述从配置中心中获取与所述数据库操作类型相关联的禁写配置规则之后,还包括:

根据所述禁写配置规则,确定所述数据库操作类型是否开启禁写功能;若否,则对所述业务流量执行数据库变更操作。

可选的,所述方法,还包括:

若解析出所述业务流量未携带有流量标签,则对所述业务流量执行数据库变更操作。

第二方面,提供一种数据禁写装置,包括:

获取模块,用于获取待处理的业务流量,并对所述业务流量进行解析;第一确定模块,用于若解析出所述业务流量携带有流量标签,则确定所述业务流量所属的数据库操作类型;第二确定模块,用于若确定所述数据库操作类型存在禁写功能,则从配置中心中获取与所述数据库操作类型相关联的禁写配置规则;匹配模块,用于将所述流量标签与所述禁写配置规则进行匹配,得到匹配结果;处理模块,用于根据所述匹配结果,对所述业务流量执行数据库禁写操作或数据库变更操作。

可选的,所述业务流量包括数据库标识;所述第一确定模块,具体用于:

根据所述数据库标识,查询数据库记录表;根据所述数据库记录表,确定所述业务流量所属的数据库操作类型;所述第二确定模块,具体用于:

若所述数据库记录表中记录所述数据库操作类型存在禁写功能,则确定所述数据库操作类型存在禁写功能。

可选的,所述处理模块,具体用于:

若所述匹配结果为成功,则对所述业务流量执行数据库禁写操作;若所述匹配结果为失败,则对所述业务流量执行数据库变更操作。

可选的,所述第一确定模块,还用于:

根据所述禁写配置规则,确定所述数据库操作类型是否开启禁写功能;若否,则指示所述处理模块对所述业务流量执行数据库变更操作。

可选的,所述第一确定模块,还用于:

若解析出所述业务流量携带有流量标签,则指示所述处理模块对所述业务流量执行数据库变更操作。

第三方面,提供一种电子设备,包括:

存储器,用于存放计算机程序;处理器,用于执行所述存储器上所存放的计算机程序时,实现第一方面中任一项所述的方法步骤。

第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法步骤。

本申请实施例中,由于获取待处理的业务流量,并对业务流量进行解析,若解析出业务流量携带有流量标签,则确定业务流量所属的数据库操作类型,若确定数据库操作类型存在禁写功能,则从配置中心中获取与数据库操作类型相关联的禁写配置规则,因此,可将具有禁写功能和不具有禁写功能的数据库区分开,从而便于后续针对不同类型的数据库的业务流量,执行不同的操作,实现更细粒度的数据库禁写功能;再由于将流量标签与禁写配置规则进行匹配,得到匹配结果;根据匹配结果,对业务流量执行数据库禁写操作或数据库变更操作,因此,对业务流量禁写进行细粒度的控制,从而动态控制业务流量的禁写范围,实现对业务流量执行数据库禁写操作时差异化的控制,在异地多活的容灾场景中,业务流量切流的同时保证了数据处理的一致性。

上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。

附图说明

图1为目前提供的一种应用于异地多活容灾场景的业务流量切流的场景示意图;

图2为本申请实施例适用的一种场景示意图;

图3为本申请实施例提供的一种数据禁写方法的流程图;

图4为本申请实施例提供的一种应用于异地多活容灾场景的业务流量切流的场景示意图;

图5为本申请实施例提供的一种数据禁写装置的结构示意图;

图6为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。A与B连接,可以表示:A与B直接连接和A与B通过C连接这两种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。

目前,在异地多活容灾场景中,业务流量的切换可能会出现不同区域之间的数据不一致性问题;虽然部分异地多活容灾场景可以通过开启数据库禁写功能保证数据的一致性,但并非所有的数据库都具有数据库禁写功能,且开启数据层面的禁写会导致所有的业务流量都禁写,无法对业务流量进行更细粒度的控制。

鉴于此,本申请实施例提供了一种数据禁写方法,在异地多活容灾场景中,基于流量标签、动态配置技术,对业务流量禁写进行细粒度的控制,可动态的控制业务流量的禁写范围,实现对业务流量执行数据库禁写操作时差异化的控制,在业务流量切流时,可将切流的业务流量在之前区域中完成禁写,从而解决区域之间数据不一致性的问题。

下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。

图2为本申请实施例适用的应用场景示意图。如图所示,该场景主要包括用户端设备20、域名系统21。用户端设备20和域名系统21之间可通过通信网络进行信息交互,该通信网络采用的通信方式可包括:无线通信方式和有线通信方式。示例性的,用户端设备20可通过蜂窝移动通信技术接入网络,与域名系统21进行通信,该蜂窝移动通信技术,可包括第五代移动通信(5th Generation Mobile Networks,5G)技术。

示例性的,用户端设备20可通过短距离无线通信方式接入网络,与域名系统21进行通信,该短距离无线通信方式,可包括无线保真(Wireless Fidelity,Wi-Fi)技术。

本申请实施例对上述设备的数量不做任何限制,如图1所示,仅以用户端设备20和域名系统21为例进行描述,下面对上述各设备及其各自的功能进行简要介绍。

用户端设备20是一种可以向用户提供语音和/或数据连通性的设备,包括:具有无线连接功能的手持式终端设备、车载终端设备等。

示例性的,用户端设备20包括但不限于:手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(Mobile Internet Device,MID)、可穿戴设备,虚拟现实(VirtualReality,VR)设备、增强现实(Augmented Reality,AR)设备、工业控制中的无线终端设备、无人驾驶中的无线终端设备、智能电网中的无线终端设备、运输安全中的无线终端设备、智慧城市中的无线终端设备,或智慧家庭中的无线终端设备等。

此外,用户端设备20上可以安装有业务流量处理相关的客户端,该客户端可以是软件(例如,APP、浏览器等),也可以是网页、小程序等。在本申请实施例中,用户端设备20可以使用上述业务流量处理相关的客户端,并且能够与域名系统21之间进行业务流量场景相关的信息交互,例如,该客户端设备10可向域名系统21发送业务请求。

域名系统21可用来接收来自于用户端设备20的业务请求,并根据该业务请求进行相应的处理。例如,对业务流量执行数据库变更操作、数据库禁写操作等。

为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并执行。

图3为本申请实施例提供的一种数据禁写方法的流程图,应用于异地多活容灾场景中,该流程可由数据禁写装置所执行,该装置可通过软件的方式实现,也可通过硬件的方式实现,还可通过软件和硬件结合的方式实现。如图2所示,该流程包括如下步骤:

301:获取待处理的业务流量,并对业务流量进行解析。

该步骤中,具体可以是用户端设备(如图2中的用户端设备20)向DNS(如图2中的域名系统21)发送业务请求,该请求中携带待处理的业务流量,还可携带用户端设备的用户标识、IP地址等信息,DNS接收到该业务请求后,对该业务流量进行解析,该业务流量可包括数据库标识,便于后续根据解析的结果确定该业务流量是属于什么类型的业务流量,从而可针对不同类型的业务流量执行不同的业务逻辑。

需要说明的是,业务流量可以是一个,也可以是多个,本申请实施例在此不做限制。

302:解析出该业务流量是否携带有流量标签,若是,则转入303,若否,则对业务流量执行数据库变更操作。

可选的,该流量标签可由编号位、匹配位等组成,可以字符串的形式表现,从而便于区分产生该业务流量的用户端设备,以及区分该业务流量应落在DNS中划分的某个区域中。

该数据变更操作具体可以是,将数据库中之前存储的业务流量变更为当前用户端设备发送的业务流量。

303:确定上述业务流量所属的数据库操作类型。

可选的,可根据上述基于业务流量解析出的数据库标识,查询数据库记录表,根据数据库记录表,确定业务流量所属的数据库操作类型。

可选的,该数据库记录表可以是预先配置的,用于记录DNS中不同区域间各种类型的数据库(例如,MySQL、Oracle、SqlServer、SQLite、INFORMIX、Redis、MongoDB、HBase、Neo4J、CouchDB等数据库),以及各数据库的数据库标识、功能描述等信息,从而便于后续基于不同的数据库,针对性的执行数据库禁写操作,更细粒度的控制禁写范围,避免所有的业务流量都被禁写。

举例来讲,当解析出该流量标签包括MySQL时,则根据该MySQL查询该数据库记录表,从而确定出该业务流量所属的数据库操作类型为关系型数据库中的MySQL关系数据库。

304:确定数据库操作类型是否存在禁写功能,若是,则转入305,若否,则对业务流量执行数据库变更操作。

该步骤中,基于上述数据库记录表,若数据库记录表中记录数据库操作类型存在禁写功能,则确定数据库操作类型存在禁写功能,否则,表明该数据库操作类型不存在禁写功能,可对业务流量执行数据库变更操作。

305:从配置中心中获取与该数据库操作类型相关联的禁写配置规则。

该配置中心配置有不同数据库的禁写配置规则,可根据该数据库操作类型(例如,MySQL关系数据库)或名称、版本号等去获取相关联的禁写配置规则。

在一些实施例中,从配置中心中获取与该数据库操作类型相关联的禁写配置规则之后,还可进一步确定该数据库操作类型是否开启了自身的禁写功能,从而进一步细粒度的控制禁写范围,具体的,以MySQL关系数据库为例,对该MySQL关系数据库关联的禁写配置规则进行解析,若解析出该MySQL关系数据库关闭了自身的禁写功能,则对业务流量执行数据变更操作,若否,则转入306,进行下一步处理。

306:将流量标签与禁写配置规则进行匹配,得到匹配结果。

在一些实施例中,可将流量标签的最后一位设置为匹配位与禁写配置规则进行匹配,得到匹配结果。

在另一些实施例中,可将流量标签的中间位设置为匹配位与禁写配置规则进行匹配,得到匹配结果。

在另一些实施例中,可将流量标签的首位设置为匹配位与禁写配置规则进行匹配,得到匹配结果。

307:根据匹配结果,对业务流量执行数据库禁写操作或数据库变更操作。

该步骤,具体可以是:若匹配结果为成功,则对业务流量执行数据库禁写操作;若匹配结果为失败,则对业务流量执行数据库变更操作。举例来讲,若流量标签的匹配位与禁写配置规则的禁写标识相同(例如,都为1),则执行数据库禁写操作,否则,执行数据库变更操作。

本申请实施例中,由于获取待处理的业务流量,并对业务流量进行解析,若解析出业务流量携带有流量标签,则确定业务流量所属的数据库操作类型,若确定数据库操作类型存在禁写功能,则从配置中心中获取与数据库操作类型相关联的禁写配置规则,因此,可将具有禁写功能和不具有禁写功能的数据库区分开,从而便于后续针对不同类型的数据库的业务流量,执行不同的操作,实现更细粒度的数据库禁写功能;再由于将流量标签与禁写配置规则进行匹配,得到匹配结果;根据匹配结果,对业务流量执行数据库禁写操作或数据库变更操作,因此,对业务流量禁写进行细粒度的控制,从而动态控制业务流量的禁写范围,实现对业务流量执行数据库禁写操作时差异化的控制,在异地多活的容灾场景中,业务流量切流的同时保证了数据处理的一致性。

在异地多活容灾场景中,当业务故障,需要对业务流量进行切换时,便可采取上述图3所示的数据禁写方法,避免区域间异地双向同步时出现数据不一致的情况,如图4所示,示例性示出了应用于异地多活容灾场景的业务流量切流的场景示意图。

若在业务流量切流之前用户端设备1发起过业务标签1的业务流量1变更,则在业务流量切流时,流量标签1和流量标签2各自的业务流量将转发到区域2中;结合上述图3的数据禁写方法,基于配置中心获得的禁写配置规则,对流量标签1在区域1中的业务流量1进行禁写控制,此时,已经进入区域1中的业务流量1的数据库变更操作1将会被禁止,区域1数据库中的数据将不会被修改,因此在区域2中发生的任何数据变更(数据变更操作2),无法影响到区域1,保证了区域间的数据一致性;在异地双向同步时,区域1中数据库的业务流量1版本A变为区域2中数据库的业务流量1版本B,使得区域间数据同步也能成功。

基于相同的技术构思,本申请实施例中还提供了一种数据禁写装置,该装置可实现本申请实施例中上述数据禁写方法流程。

图5为本申请实施例提供的一种数据禁写装置的结构示意图。如图5所示,该装置应用于异地多活容灾场景中,包括:获取模块501、第一确定模块502、第二确定模块503、匹配模块504、处理模块505。

获取模块501,用于获取待处理的业务流量,并对所述业务流量进行解析。

第一确定模块502,用于若解析出所述业务流量携带有流量标签,则确定所述业务流量所属的数据库操作类型。

第二确定模块503,用于若确定所述数据库操作类型存在禁写功能,则从配置中心中获取与所述数据库操作类型相关联的禁写配置规则。

匹配模块504,用于将所述流量标签与所述禁写配置规则进行匹配,得到匹配结果。

处理模块505,用于根据所述匹配结果,对所述业务流量执行数据库禁写操作或数据库变更操作。

可选的,所述业务流量包括数据库标识;所述第一确定模块502,具体用于:

根据所述数据库标识,查询数据库记录表;根据所述数据库记录表,确定所述业务流量所属的数据库操作类型;所述第二确定模块503,具体用于:

若所述数据库记录表中记录所述数据库操作类型存在禁写功能,则确定所述数据库操作类型存在禁写功能。

可选的,所述处理模块505,具体用于:

若所述匹配结果为成功,则对所述业务流量执行数据库禁写操作;若所述匹配结果为失败,则对所述业务流量执行数据库变更操作。

可选的,所述第一确定模块502,还用于:

根据所述禁写配置规则,确定所述数据库操作类型是否开启禁写功能;若否,则指示所述处理模块505对所述业务流量执行数据库变更操作。

可选的,所述第一确定模块502,还用于:

若解析出所述业务流量携带有流量标签,则指示所述处理模块505对所述业务流量执行数据库变更操作。

在此需要说明的是,本申请实施例提供的上述装置,能够实现上述方法实施例中的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。

基于相同的技术构思,本申请实施例中还提供了一种电子设备,所述电子设备可以实现前述一种数据禁写装置的功能。

图6为本申请实施例提供的电子设备的结构示意图。

至少一个处理器601,以及与至少一个处理器601连接的存储器602,本申请实施例中不限定处理器601与存储器602之间的具体连接介质,图6中是以处理器601和存储器602之间通过总线600连接为例。总线600在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线600可以分为地址总线、数据总线、控制总线等,为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器601也可以称为控制器,对于名称不做限制。

在本申请实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前文论述的一种数据禁写方法。处理器601可以实现图5所示的装置中各个模块的功能。

其中,处理器601是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。

在一种可能的设计中,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的一种数据禁写方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

通过对处理器601进行设计编程,可以将前述实施例中介绍的一种数据禁写方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图3所示的实施例的一种数据禁写方法。如何对处理器601进行设计编程为本领域技术人员所公知的技术,这里不再赘述。

在此需要说明的是,本申请实施例提供的上述通电子设备,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行上述实施例中的一种数据禁写方法。

本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在被计算机调用时,使得所述计算机执行上述实施例中的一种数据禁写方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

技术分类

06120115758661