CN116775684A - 数据处理方法、系统、装置、电子设备及存储介质 - Google Patents

数据处理方法、系统、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116775684A
CN116775684A CN202310736658.8A CN202310736658A CN116775684A CN 116775684 A CN116775684 A CN 116775684A CN 202310736658 A CN202310736658 A CN 202310736658A CN 116775684 A CN116775684 A CN 116775684A
Authority
CN
China
Prior art keywords
data
database
production
query
data query
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.)
Pending
Application number
CN202310736658.8A
Other languages
English (en)
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.)
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Unicom Cloud Data Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Unicom Cloud Data Co Ltd
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 China United Network Communications Group Co Ltd, Unicom Digital Technology Co Ltd, Unicom Cloud Data Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202310736658.8A priority Critical patent/CN116775684A/zh
Publication of CN116775684A publication Critical patent/CN116775684A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据处理方法、系统、装置、电子设备及存储介质。数据库系统包括:包括至少一个数据生产数据库的数据生产集群,以及,包括至少一个数据查询数据库的数据查询子系统,任一数据查询数据库存储有至少一个数据生产数据库中的所有数据;数据库系统可以接收来自数据生产端的用于请求将第一目标数据写入数据生产集群的数据库操作请求;通过目标数据生产数据库将第一目标数据写入目标数据生产数据库;或者,接收来自数据查询端的用于请求查询第二目标数据的数据查询请求;通过目标数据查询数据库,获取数据查询结果,将数据查询结果反馈至数据查询端。本申请降低数据查询对数据库集群运行的影响,进而降低数据库集群卡顿的可能性。

Description

数据处理方法、系统、装置、电子设备及存储介质
技术领域
本申请涉及数据库技术,尤其涉及一种数据处理方法、系统、装置、电子设备及存储介质。
背景技术
Galera数据库集群技术是一种能够方便快捷地创建数据库高可用集群的技术。基于该Galera数据库集群技术构建的数据库集群中可以包括多个数据库。其中,每个数据库都可以作为数据库主库来写入数据。
目前,在向该数据库集群中的任一数据库写入数据时,该数据库集群中的每个数据库都要同步更新写入操作,且需每个数据库都写入完成后才能执行下一条数据的写操作。因此,若该数据库集群中的任一数据库无法写入数据(例如复杂的数据查询可能耗尽一个数据库的磁盘资源,造成该数据库磁盘过载,进而导致该数据库无法执行写入数据的操作),将导致整个该数据库集群无法继续提供服务,因此导致整个数据库集群的卡顿。
发明内容
本申请提供一种数据处理方法、系统、装置、电子设备及存储介质,以解决数据库集群卡顿的问题。
第一方面,本申请提供一种数据处理方法,所述方法应用于数据库系统,所述数据库系统包括:数据生产集群,以及,数据查询子系统,所述数据生产集群包括:至少一个数据生产数据库,所述数据查询子系统包括:至少一个数据查询数据库;任一所述数据查询数据库存储有所述至少一个数据生产数据库中的所有数据;所述方法包括:
接收来自数据生产端的数据库操作请求;所述数据库操作请求用于请求将第一目标数据写入所述数据生产集群;
通过目标数据生产数据库将所述第一目标数据写入所述目标数据生产数据库;所述目标数据生产数据库为所述至少一个数据生产数据库中的其中一个;
或者,
接收来自数据查询端的数据查询请求;所述数据查询请求用于请求查询第二目标数据;
通过目标数据查询数据库,获取数据查询结果,所述数据查询结果包括所述第二目标数据;
将所述数据查询结果反馈至所述数据查询端。
在一些实施例中,所述数据库系统还包括:至少一个数据生产代理服务器,以及,至少一个数据查询代理服务器,所述方法包括:
通过所述至少一个数据生产代理服务器中的目标数据生产代理服务器,接收所述数据库操作请求,并将所述数据库操作请求发送至所述目标数据生产数据库;
通过所述至少一个数据查询代理服务器中的目标数据查询代理服务器,接收所述数据查询请求,并将所述数据查询请求发送至所述目标数据查询数据库,以及,将所述数据查询结果反馈至所述数据查询端。
在一些实施例中,在所述将所述数据库操作请求发送至目标数据生产数据库之前,所述方法还包括:
通过所述目标数据生产代理服务器,根据所述数据生产数据库是否空闲的判断结果,和/或,所述数据生产数据库的数据存储权重,从所述至少一个数据生产数据库中确定所述目标数据生产数据库;
或者,
在所述将所述数据查询请求发送至目标数据查询数据库之前,所述方法还包括:
通过所述目标数据查询代理服务器,根据所述数据查询数据库是否空闲的判断结果,和/或,所述数据查询数据库的数据查询权重,从所述至少一个数据查询数据库中确定所述目标数据查询数据库。
在一些实施例中,所述至少一个数据生产代理服务器使用的第一虚拟IP地址相同;所述至少一个数据查询代理服务器使用的第二虚拟IP地址相同;所述方法还包括:
在所述目标数据生产代理服务器宕机时,通过除所述目标数据生产代理服务器之外的所述数据生产代理服务器,使用所述第一虚拟IP地址,与所述数据生产端建立连接;
或者,
在所述目标数据查询代理服务器宕机时,通过除所述目标数据查询代理服务器之外的所述数据查询代理服务器,使用所述第二虚拟IP地址,与所述数据查询端建立连接。
在一些实施例中,所述方法还包括:
接收来自所述数据生产端的数据读取请求;所述数据读取请求用于请求从所述数据生产集群读取第三目标数据;
通过目标数据生产数据库,获取数据读取结果,所述数据读取结果包括所述第三目标数据;
将所述数据读取结果反馈至所述数据生产端。
在一些实施例中,所述方法还包括:
通过所述数据生产数据库将所述数据生产数据库中的数据同步至每个所述数据查询数据库。
第二方面,本申请提供一种数据库系统,所述数据库系统包括:数据生产集群,以及,数据查询子系统,所述数据生产集群包括:至少一个数据生产数据库,所述数据查询子系统包括:至少一个数据查询数据库;任一所述数据查询数据库存储有所述至少一个数据生产数据库中的所有数据;所述数据库系统用于执行如第一方面任一项所述的方法。
第三方面,本申请提供一种数据处理装置,所述装置应用于数据库系统,所述数据库系统包括:数据生产集群,以及,数据查询子系统,所述数据生产集群包括:至少一个数据生产数据库,所述数据查询子系统包括:至少一个数据查询数据库;任一所述数据查询数据库存储有所述至少一个数据生产数据库中的所有数据;所述装置包括:
接收模块,用于接收来自数据生产端的数据库操作请求;所述数据库操作请求用于请求将第一目标数据写入所述数据生产集群;
处理模块,用于通过目标数据生产数据库将所述第一目标数据写入所述目标数据生产数据库;所述目标数据生产数据库为所述至少一个数据生产数据库中的其中一个;
或者,
所述接收模块,用于接收来自数据查询端的数据查询请求;所述数据查询请求用于请求查询第二目标数据;
所述处理模块,用于通过目标数据查询数据库,获取数据查询结果,所述数据查询结果包括所述第二目标数据;
发送模块,用于将所述数据查询结果反馈至所述数据查询端。
第四方面,本申请提供一种电子设备,所述电子设备包括存储器和处理器;
所述存储器中存储有计算机程序;
所述处理器被设置为通过所述计算机程序执行第一方面中任一项所述的方法。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机执行指令,当所述计算机执行指令被处理器执行时,实现第一方面任一项所述的方法。
本申请提供的数据处理方法、系统、装置、电子设备及存储介质,数据库系统可以基于数据生产集群中的目标数据生产数据库执行来自数据生产端的数据库操作请求,将第一目标数据写入目标数据生产数据库,实现数据生产过程。因为数据查询子系统中的任一数据查询数据库存储有至少一个数据生产数据库中的所有数据,因此数据库系统可以基于该数据查询子系统中的目标数据查询数据库执行来自数据查询端的数据查询请求,将包括第二目标数据的数据查询结果反馈至数据查询端,实现了数据查询过程。通过上述数据生产集群,以及,数据查询子系统实现了将数据库系统的数据生产和数据查询进行分离,降低了数据查询对数据库集群运行的影响,进而降低数据库集群卡顿的可能性,因此提高了该数据库系统的健壮性和稳定性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一种现有的数据库集群的应用场景示意图;
图2为本申请提供的一种数据库系统的架构示意图;
图3为本申请提供的另一种数据库系统的架构示意图;
图4为本申请提供的又一种数据库系统的架构示意图;
图5为本申请提供的一种数据处理装置的结构示意图;
图6为本申请提供的一种电子设备结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
Galera数据库集群(Cluster)技术是一种数据库拓扑模型技术。通过该Galera数据库集群技术可以数据库高可用集群(也可以简称为数据库集群)。该数据库集群中的每台数据库服务器(也就是一个数据库)都可以作为主库写入数据。目前,在向该数据库集群中的任一数据库写入数据时,该数据库集群中的每个数据库都要同步更新写入操作,且需每个数据库都写入完成后才能执行下一条数据的写操作。
然而,通常针对数据库集群的操作,不仅有写操作,还还存在大量的数据查询操作。例如用户(例如客服、运营人员等)可以通过数据查询端,从该数据库集群中查询获取所需的数据。图1为一种现有的数据库集群的应用场景示意图。如图1所示,在使用现有的数据库集群时,数据查询端直接与该数据库集群连接。
然而,若数据查询端所需的数据查询业务较为复杂,数据库集群中的用于执行该数据查询业务的数据库可能存在耗尽数据库磁盘资源的情况,进而造成该数据库磁盘过载。若该数据库磁盘过载,将导致该数据库无法写入数据。然而,如前述所说,该数据库集群需每个数据库都写入完成,才能进行下一条写入操作。因此,该数据库磁盘的过载,将导致整个数据库集群无法再提供数据写入服务,引起了整个数据库集群的卡顿。
考虑到现有的数据库存在上述问题的原因是通过该数据库集群执行较为复杂的数据查询业务,因此,本申请提出了一种将数据生产(例如在数据库中写入数据)操作与数据查询业务分离的方法,以降低数据查询对数据库集群运行的影响,进而降低数据库集群卡顿的可能性。
下面结合具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
首先,图2为本申请提供的一种数据库系统的架构示意图。如图2所示,该数据库系统可以包括:数据生产集群,以及,数据查询子系统。其中,该数据生产集群可以包括:至少一个数据生产数据库。该数据查询子系统可以包括:至少一个数据查询数据库。
针对上述任一数据查询数据库,该数据查询数据库可以存储有上述“至少一个数据生产数据库”中的所有数据。作为一种可能的实现方式,数据库系统例如可以通过上述数据生产数据库,将数据生产数据库中的数据同步至每个数据查询数据库。例如,数据库系统可以通过上述数据生产数据库,将数据生产数据库中的数据实时同步至每个数据查询数据库,以使每个数据查询数据库均包括数据生产数据库中的所有数据,且提高了数据查询数据库中数据的准确性。
示例性的,以数据生产集群包括3个数据生产数据库、数据查询子系统包括2个数据查询数据库为例,则该2个数据查询数据库中的每个数据查询数据库可以均包括:上述3个数据生产数据库中的所有数据。
应理解,本申请对数据生产集群包括的数据生产数据库的数量,以及,数据查询子系统包括的数据查询数据库的数量均不进行限定。此外,可选的,数据生产集群包括的数据生产数据库的数量,与数据查询子系统包括的数据查询数据库的数量可以相同,也可以不同,本申请对此并不进行限定。
示例性的,上述数据生产数据库和数据查询数据库例如可以为基于MySQL(一个关系型数据库管理系统的名称)Galera Cluster,或者,Mariadb(一种数据库管理系统的名称,是MySQL的一个分支)Galera Cluster技术构建的数据库。
上述数据库系统可以接收来自数据生产端的数据库操作请求。其中,该数据库操作请求可以用于请求将第一目标数据写入该数据生产集群。然后,数据库系统可以通过目标数据生产数据库将第一目标数据写入该目标数据生产数据库。其中,该目标数据生产数据库为上述至少一个数据生产数据库中的其中一个。
应理解,本申请对上述数据生产端的类型并不进行限定。例如,该数据生产端可以为任意一种现有具有处理能力的电子设备,例如电脑等。上述第一目标数据可以为任意能够存储在数据库中的数据,本申请对此并不进行限定。
可选的,以数据库系统包括数据生产集群对应的数据生产代理服务器为例,则该数据库系统可以通过该数据生产代理服务器,接收来自数据生产端的数据库操作请求。或者,以数据生产集群和数据查询子系统对应同一个代理服务器为例,则该数据库系统例如可以通过该代理服务器,接收上述数据库操作请求。
可选的,目标数据生产数据库将第一目标数据写入该目标数据生产数据库的实现方式,可以参照任意一种现有的数据库将数据写入该数据库的方法,本申请在此不再赘述。
在一些实施例中,以该数据生产集群为基于前述Galera数据库集群技术构建的为例,则目标数据生产数据库还可以向该数据生产集群中的其他数据生产数据库同步该第一目标数据,以使其他数据生产数据库也写入该第一目标数据。
数据库系统还可以接收来自数据查询端的数据查询请求。其中,该数据查询请求可以用于请求查询第二目标数据。然后,数据库系统可以通过目标数据查询数据库,获取数据查询结果。其中,该数据查询结果可以包括上述第二目标数据。然后,数据库系统可以将该数据查询结果反馈至上述数据查询端。上述目标数据查询数据库为上述至少一个数据查询数据库中的其中一个。
应理解,本申请对上述数据查询端的类型并不进行限定。例如,该数据查询端可以为任意一种现有具有处理能力的电子设备,例如电脑等。在一些实施例中,上述数据查询端和数据生产端可以为同一电子设备,或者也可以为不同的电子设备,本申请对此并不进行限定。上述第二目标数据可以为任意存储在数据查询数据库中的数据,本申请对此并不进行限定。
可选的,以数据库系统包括数据查询子系统对应的数据查询代理服务器为例,则该数据库系统可以通过该数据查询代理服务器,接收来自数据查询端的数据查询请求。或者,以数据生产集群和数据查询子系统对应同一个代理服务器为例,则该数据库系统例如可以通过该代理服务器,接收上述数据查询请求。
可选的,目标数据查询数据库获取上述数据查询结果的实现方式,可以参照任意一种现有的数据库根据数据查询请求获取数据查询结果的方法,本申请在此不再赘述。
在本实施例中,数据库系统可以基于数据生产集群中的目标数据生产数据库执行来自数据生产端的数据库操作请求,将第一目标数据写入目标数据生产数据库,实现数据生产过程。因为数据查询子系统中的任一数据查询数据库存储有至少一个数据生产数据库中的所有数据,因此数据库系统可以基于该数据查询子系统中的目标数据查询数据库执行来自数据查询端的数据查询请求,将包括第二目标数据的数据查询结果反馈至数据查询端,实现了数据查询过程。通过上述数据生产集群,以及,数据查询子系统实现了将数据库系统的数据生产和数据查询进行分离,降低了数据查询对数据库集群运行的影响,进而降低数据库集群卡顿的可能性,因此提高了该数据库系统的健壮性和稳定性。
作为一种可能的实现方式,数据库系统还可以包括:至少一个数据生产代理服务器,以及,至少一个数据查询代理服务器。
可选的,该数据库系统包括的数据生产代理服务器的数量,与,数据查询代理服务器的数量可以相同,也可以不同,本申请对此并不进行限定。
图3为本申请提供的另一种数据库系统的架构示意图。如图3所示,作为一种可能的实现方式,数据库系统可以通过上述至少一个数据生产代理服务器中的目标数据生产代理服务器执行与数据生产端之间的交互。例如,数据库系统可以通过该目标数据生产代理服务器接收上述数据库操作请求,并将该数据库操作请求发送至目标数据生产数据库。
在一些实施例中,目标数据生产数据库还可以在将前述第一目标数据写入该目标数据生产数据库之后,向该目标数据生产代理服务器发送“用于表征该第二目标数据写入成功的”反馈结果。相应的,该目标数据生产代理服务器可以接收该反馈结果,并将该反馈结果发送至数据生产端。
数据库系统可以通过上述至少一个数据查询代理服务器中的目标数据查询代理服务器执行与数据查询端之间的交互。例如,数据库系统可以通过该标数据查询代理服务器接收上述数据查询请求,并将该数据查询请求发送至目标数据查询数据库,以及,将前述数据查询结果反馈至数据查询端。
在本实施例中,数据库系统可以通过目标数据生产代理服务器,使得数据生产端与数据生产集群中的数据生产数据库进行交互,提高了数据库系统对来自数据生产端的数据库操作请求的管理效率。数据库系统可以通过目标数据查询代理服务器,使得数据查询端与数据查询子系统中的数据查询数据库进行交互,提高了数据库系统对来自数据查询端的数据查询请求的管理效率。因此,通过上述方法,进一步提高了该数据库系统的运行效率。
下面对数据库系统如何确定目标数据生产数据库,以及,如何确定目标数据查询数据库进行详细说明:
在一些实施例中,数据库系统可以在将数据库操作请求发送至目标数据生产数据库之前,通过该目标数据生产代理服务器,根据数据生产数据库是否空闲的判断结果,和/或,数据生产数据库的数据存储权重,从上述至少一个数据生产数据库中确定目标数据生产数据库。
以目标数据生产代理服务器,根据数据生产数据库是否空闲的判断结果,从上述至少一个数据生产数据库中确定目标数据生产数据库为例,示例性的,目标数据生产代理服务器例如可以先确定各数据生产数据库是否空闲。例如,目标数据生产代理服务器可以确定“计算资源剩余空间大于预设空间”的数据生产数据库为空闲状态,确定“计算资源剩余空间小于或等于预设空间”的数据生产数据库为非空闲状态。然后,目标数据生产代理服务器例如可以将空闲状态的数据生产数据库作为目标数据生产数据库。以存在多个空闲状态的数据生产数据库为例,例如目标数据生产代理服务器可以从该多个空闲状态的数据生产数据库中随机挑选一个数据生产数据库作为目标数据生产数据库。
以目标数据生产代理服务器,根据数据生产数据库的数据存储权重,从上述至少一个数据生产数据库中确定目标数据生产数据库为例,示例性的,目标数据生产代理服务器例如可以预先存储有各数据生产数据库的数据存储权重。目标数据生产代理服务器例如可以将数据存储权重最大的数据生产数据库作为目标数据生产数据库。
以目标数据生产代理服务器,根据数据生产数据库是否空闲的判断结果,以及,数据生产数据库的数据存储权重,从上述至少一个数据生产数据库中确定目标数据生产数据库为例,示例性的,目标数据生产代理服务器例如可以将数据存储权重大于预设权重,且空闲状态的数据生产数据库作为目标数据生产数据库。
或者,目标数据生产代理服务器例如还可以通过依次轮流的方式,从上述至少一个数据生产数据库中确定目标数据生产数据库。例如,假定数据生产集群包括:数据生产数据库1、数据生产数据库2和数据生产数据库3,则目标数据生产代理服务器可以在第i次接收到数据库操作请求之后,确定目标数据生产数据库为数据生产数据库1;在第i+1次接收到数据库操作请求之后,确定目标数据生产数据库为数据生产数据库2;在第i+2次接收到数据库操作请求之后,确定目标数据生产数据库为数据生产数据库3。
在一些实施例中,数据库系统可以在将数据查询请求发送至目标数据查询数据库之前,通过前述目标数据查询代理服务器,根据数据查询数据库是否空闲的判断结果,和/或,数据查询数据库的数据查询权重,从至少一个数据查询数据库中确定目标数据查询数据库。
可选的,数据库系统“通过前述目标数据查询代理服务器,根据数据查询数据库是否空闲的判断结果,和/或,数据查询数据库的数据查询权重,从至少一个数据查询数据库中确定目标数据查询数据库”的具体实现方式,可以参照前述实施例所述的“通过该目标数据生产代理服务器,根据数据生产数据库是否空闲的判断结果,和/或,数据生产数据库的数据存储权重,从上述至少一个数据生产数据库中确定目标数据生产数据库”的方法,在此不再赘述。
在本实施例中,数据库系统可以在将数据查询请求发送至目标数据查询数据库之前确定目标数据查询数据库,通过上述方法,为后续从该目标数据查询数据库查询得到第二目标数据奠定了基础。通过在将数据库操作请求发送至目标数据查询数据库之前,确定目标数据生产数据库,为后续向该目标数据生产数据库写入第一目标数据奠定了基础。
作为一种可能的实现方式,上述至少一个数据生产代理服务器使用的第一虚拟IP地址(Virtual IP Address,VIP)可以相同。上述至少一个数据查询代理服务器使用的第二虚拟IP地址可以相同。
在该实现方式下,在目标数据生产代理服务器宕机时,数据库系统可以通过“除该目标数据生产代理服务器之外”的数据生产代理服务器,使用上述第一虚拟IP地址,与数据生产端建立连接。也就是说,也就是说,在目标数据生产代理服务器宕机之前,该目标数据生产代理服务器使用上述第一虚拟IP地址,与数据生产端建立连接。在目标数据生产代理服务器宕机时,其他的数据生产代理服务器可以继续使用该第一虚拟IP地址与数据生产端建立连接,实现代理服务器的高可用,以进一步提高该数据库系统运行的稳定性和健壮性。
或者,在目标数据查询代理服务器宕机时,数据库系统可以通过“除目标数据查询代理服务器之外”的数据查询代理服务器,使用上述第二虚拟IP地址,与数据查询端建立连接。也就是说,在目标数据查询代理服务器宕机之前,该目标数据查询代理服务器使用上述第二虚拟IP地址,与数据查询端建立连接。在目标数据查询代理服务器宕机时,其他的数据查询代理服务器可以继续使用该第二虚拟IP地址与数据查询端建立连接,实现代理服务器的高可用,以进一步提高该数据库系统运行的稳定性和健壮性。
以目标数据生产代理服务器宕机,且除了该目标数据生产代理服务器之外还存在多个数据生产代理服务器为例,上述除了该目标数据生产代理服务器之外的多个数据生产代理服务器之间例如可以通信,以确定出权重最大的数据生产代理服务器。该权重最大的数据生产代理服务器可以在目标数据生产代理服务器宕机之后,继续使用该第一虚拟IP地址与数据生产端建立连接。
作为一种可能的实现方式,数据库系统还可以接收来自数据生产端的,用于“请求从数据生产集群读取第三目标数据”的数据读取请求。然后,数据库系统可以通过该目标数据生产数据库,获取“包括上述第三目标数据”的数据读取结果,并将该数据读取结果反馈至数据生产端。通过上述方法,使得该数据生产端也可以从该数据生产集群读取数据,提高了数据库系统的灵活性。
示例性的,以数据库系统还包括至少一个数据生产代理服务器为例,则数据库系统可以通过该至少一个数据生产代理服务器中的目标数据生产代理服务器,接收上述数据读取请求。然后,数据库系统可以通过该目标数据生产代理服务器将该数据读取请求发送至目标数据生产数据库,以及,将上述数据读取结果反馈至数据生产端。
以上述数据生产集群为基于Galera数据库集群技术构建的Galera数据库集群,也可以称为数据库主库,上述数据查询子系统还可以称为数据库从库为例,图4为本申请提供的又一种数据库系统的架构示意图。如图4所示,其中生产读写即为前述数据生产端;生产代理组中的代理1……代理n指的是数据生产代理服务器1……数据生产代理服务器n。其中业务查询可以指的是数据查询端、业务代理组中的代理1……代理n指的是数据查询代理服务器1……数据查询代理服务器n。其中,DB MASTER指的是数据库(Data Base,DB)主库(master);DB SLAVE指的是数据库从库(slave)。
在一些实施例中,上述Galera数据库集群可以包含至少3台数据库服务器。其中,每台数据库服务器都可以作为主数据库读写数据库请求,其他的数据库服务器通过例如可以wsrep协议(Galera数据库集群的一种协议的名称,全称为Write Set Replication)以同步写的方式来实时同步数据。在该Galera数据库集群中,当有一台Galera数据库服务器宕机时,其他数据库服务器仍可提供服务。
数据库从库可以通过多主多从的方式(也就是Galera数据库集群中所有数据库服务器存储的数据均同步至数据库从库中的每台数据库服务器)实时同步数据。当数据库从库中有一台数据库服务器宕机时,数据库从库中的其他数据库服务器仍可提供服务。
以生产代理组中的数据生产代理服务器为例,生产代理组内的各代理服务器可以使用keepalived(一种交换机制软件的名称)服务通过虚拟路由冗余协议(Virtual RouterRedundancy Protocol,vrrp协议)来共享一个虚拟IP地址。当该代理服务器组内一台正在提供服务的代理服务器宕机时,另一台代理服务器可以立即获得该共享虚拟IP地址的使用权并提供代理服务。
数据生产端需要读写Galera数据库集群中的数据时,可以使用上述第一虚拟IP地址与该生产代理组中的目标数据生产代理服务器连接。也就是说,可以将数据生产端访问的数据库地址设置成上述第一虚拟IP地址,使得数据生产端在需访问该Galera数据库集群时,实际可以使用访问该Galera数据库集群的数据库账号,与该目标数据生产代理服务器连接。该目标数据生产代理服务器可以将来自数据生产端的数据库操作请求代理到后端的Galera数据库集群中的目标数据生产数据库。该目标数据生产数据库可以将结果通过目标数据生产代理服务器返回给数据生产端。
数据查询端需要查询数据库从库中的数据时,可以使用上述第二虚拟IP地址与该生产代理组中的目标数据查询代理服务器连接。也就是说,可以将数据查询端访问的数据库地址设置成上述第二虚拟IP地址,使得数据查询端在需访问该数据库从库时,实际可以使用访问该数据库从库的数据库账号,与该目标数据查询代理服务器连接。该目标数据查询代理服务器可以将来自数据查询端的数据查询请求代理到后端的数据库从库中的目标数据查询数据库。该目标数据查询数据库可以将结果通过目标数据查询代理服务器返回给数据查询端。
在本实施例中,通过分离Galera数据库集群和数据库从库,实现了数据生产与业务查询的隔离,避免了复杂的业务查询对生产数据库集群的影响,进而提高了整个数据库系统的健壮性。
图5为本申请提供的一种数据处理装置的结构示意图。该装置可以应用于如前述任一实施例所述的数据库系统。如图5所示,该装置包括:接收模块11、处理模块12,以及,发送模块13。其中,
接收模块11,用于接收来自数据生产端的数据库操作请求。其中,所述数据库操作请求用于请求将第一目标数据写入所述数据生产集群。
处理模块12,用于通过目标数据生产数据库将所述第一目标数据写入所述目标数据生产数据库。其中,所述目标数据生产数据库为所述至少一个数据生产数据库中的其中一个。
或者,
接收模块11,用于接收来自数据查询端的数据查询请求。其中,所述数据查询请求用于请求查询第二目标数据。
处理模块12,用于通过目标数据查询数据库,获取数据查询结果。其中,所述数据查询结果包括所述第二目标数据。
发送模块13,用于将所述数据查询结果反馈至所述数据查询端。
可选的,所述数据库系统还包括:至少一个数据生产代理服务器,以及,至少一个数据查询代理服务器。可选的,接收模块11,具体用于通过所述至少一个数据生产代理服务器中的目标数据生产代理服务器,接收所述数据库操作请求。可选的,处理模块12,具体用于将所述数据库操作请求发送至所述目标数据生产数据库。可选的,接收模块11,具体用于通过所述至少一个数据查询代理服务器中的目标数据查询代理服务器,接收所述数据查询请求。可选的,处理模块12,具体用于将所述数据查询请求发送至所述目标数据查询数据库。可选的,发送模块13,具体用于将所述数据查询结果反馈至所述数据查询端。
可选的,处理模块12,还用于在所述将所述数据库操作请求发送至目标数据生产数据库之前,通过所述目标数据生产代理服务器,根据所述数据生产数据库是否空闲的判断结果,和/或,所述数据生产数据库的数据存储权重,从所述至少一个数据生产数据库中确定所述目标数据生产数据库。
或者,可选的,处理模块12,还用于在所述将所述数据查询请求发送至目标数据查询数据库之前,通过所述目标数据查询代理服务器,根据所述数据查询数据库是否空闲的判断结果,和/或,所述数据查询数据库的数据查询权重,从所述至少一个数据查询数据库中确定所述目标数据查询数据库。
可选的,所述至少一个数据生产代理服务器使用的第一虚拟IP地址相同;所述至少一个数据查询代理服务器使用的第二虚拟IP地址相同;可选的,处理模块12,还用于在所述目标数据生产代理服务器宕机时,通过除所述目标数据生产代理服务器之外的所述数据生产代理服务器,使用所述第一虚拟IP地址,与所述数据生产端建立连接;或者,可选的,处理模块12,还用于在所述目标数据查询代理服务器宕机时,通过除所述目标数据查询代理服务器之外的所述数据查询代理服务器,使用所述第二虚拟IP地址,与所述数据查询端建立连接。
可选的,接收模块11,还用于接收来自所述数据生产端的数据读取请求。其中,所述数据读取请求用于请求从所述数据生产集群读取第三目标数据。可选的,处理模块12,还用于通过目标数据生产数据库,获取数据读取结果。其中,所述数据读取结果包括所述第三目标数据。可选的,发送模块13,还用于将所述数据读取结果反馈至所述数据生产端。
可选的,处理模块12,还用于通过所述数据生产数据库将所述数据生产数据库中的数据同步至每个所述数据查询数据库。
本申请提供的数据处理装置,用于执行前述数据处理方法实施例,其实现原理与技术效果类似,对此不再赘述。
图6为本申请提供的一种电子设备结构示意图。如图6所示,该电子设备200可以包括:至少一个处理器201和存储器202。
存储器202,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器202可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器201用于执行存储器202存储的计算机执行指令,以实现前述方法实施例所描述的数据处理方法。其中,处理器201可能是一个中央处理器(Central ProcessingUnit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,该电子设备200还可以包括通信接口203。在具体实现上,如果通信接口203、存储器202和处理器201独立实现,则通信接口203、存储器202和处理器201可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口203、存储器202和处理器201集成在一块芯片上实现,则通信接口203、存储器202和处理器201可以通过内部接口完成通信。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
本申请还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得电子设备实施上述的各种实施方式提供的数据处理方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法应用于数据库系统,所述数据库系统包括:数据生产集群,以及,数据查询子系统,所述数据生产集群包括:至少一个数据生产数据库,所述数据查询子系统包括:至少一个数据查询数据库;任一所述数据查询数据库存储有所述至少一个数据生产数据库中的所有数据;所述方法包括:
接收来自数据生产端的数据库操作请求;所述数据库操作请求用于请求将第一目标数据写入所述数据生产集群;
通过目标数据生产数据库将所述第一目标数据写入所述目标数据生产数据库;所述目标数据生产数据库为所述至少一个数据生产数据库中的其中一个;
或者,
接收来自数据查询端的数据查询请求;所述数据查询请求用于请求查询第二目标数据;
通过目标数据查询数据库,获取数据查询结果,所述数据查询结果包括所述第二目标数据;所述目标数据查询数据库为所述至少一个数据查询数据库中的其中一个;
将所述数据查询结果反馈至所述数据查询端。
2.根据权利要求1所述的方法,其特征在于,所述数据库系统还包括:至少一个数据生产代理服务器,以及,至少一个数据查询代理服务器,所述方法包括:
通过所述至少一个数据生产代理服务器中的目标数据生产代理服务器,接收所述数据库操作请求,并将所述数据库操作请求发送至所述目标数据生产数据库;
通过所述至少一个数据查询代理服务器中的目标数据查询代理服务器,接收所述数据查询请求,并将所述数据查询请求发送至所述目标数据查询数据库,以及,将所述数据查询结果反馈至所述数据查询端。
3.根据权利要求2所述的方法,其特征在于,在所述将所述数据库操作请求发送至所述目标数据生产数据库之前,所述方法还包括:
通过所述目标数据生产代理服务器,根据所述数据生产数据库是否空闲的判断结果,和/或,所述数据生产数据库的数据存储权重,从所述至少一个数据生产数据库中确定所述目标数据生产数据库;
或者,
在所述将所述数据查询请求发送至目标数据查询数据库之前,所述方法还包括:
通过所述目标数据查询代理服务器,根据所述数据查询数据库是否空闲的判断结果,和/或,所述数据查询数据库的数据查询权重,从所述至少一个数据查询数据库中确定所述目标数据查询数据库。
4.根据权利要求2所述的方法,其特征在于,所述至少一个数据生产代理服务器使用的第一虚拟IP地址相同;所述至少一个数据查询代理服务器使用的第二虚拟IP地址相同;所述方法还包括:
在所述目标数据生产代理服务器宕机时,通过除所述目标数据生产代理服务器之外的所述数据生产代理服务器,使用所述第一虚拟IP地址,与所述数据生产端建立连接;
或者,
在所述目标数据查询代理服务器宕机时,通过除所述目标数据查询代理服务器之外的所述数据查询代理服务器,使用所述第二虚拟IP地址,与所述数据查询端建立连接。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
接收来自所述数据生产端的数据读取请求;所述数据读取请求用于请求从所述数据生产集群读取第三目标数据;
通过目标数据生产数据库,获取数据读取结果,所述数据读取结果包括所述第三目标数据;
将所述数据读取结果反馈至所述数据生产端。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
通过所述数据生产数据库将所述数据生产数据库中的数据同步至每个所述数据查询数据库。
7.一种数据库系统,其特征在于,所述数据库系统包括:数据生产集群,以及,数据查询子系统,所述数据生产集群包括:至少一个数据生产数据库,所述数据查询子系统包括:至少一个数据查询数据库;任一所述数据查询数据库存储有所述至少一个数据生产数据库中的所有数据;所述数据库系统用于执行如权利要求1-6任一项所述的方法。
8.一种数据处理装置,其特征在于,所述装置应用于数据库系统,所述数据库系统包括:数据生产集群,以及,数据查询子系统,所述数据生产集群包括:至少一个数据生产数据库,所述数据查询子系统包括:至少一个数据查询数据库;任一所述数据查询数据库存储有所述至少一个数据生产数据库中的所有数据;所述装置包括:
接收模块,用于接收来自数据生产端的数据库操作请求;所述数据库操作请求用于请求将第一目标数据写入所述数据生产集群;
处理模块,用于通过目标数据生产数据库将所述第一目标数据写入所述目标数据生产数据库;所述目标数据生产数据库为所述至少一个数据生产数据库中的其中一个;
或者,
所述接收模块,用于接收来自数据查询端的数据查询请求;所述数据查询请求用于请求查询第二目标数据;
所述处理模块,用于通过目标数据查询数据库,获取数据查询结果,所述数据查询结果包括所述第二目标数据;
发送模块,用于将所述数据查询结果反馈至所述数据查询端。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器;
所述存储器中存储有计算机程序;
所述处理器被设置为通过所述计算机程序执行权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机执行指令,当所述计算机执行指令被处理器执行时,实现权利要求1-6任一项所述的方法。
CN202310736658.8A 2023-06-20 2023-06-20 数据处理方法、系统、装置、电子设备及存储介质 Pending CN116775684A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310736658.8A CN116775684A (zh) 2023-06-20 2023-06-20 数据处理方法、系统、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310736658.8A CN116775684A (zh) 2023-06-20 2023-06-20 数据处理方法、系统、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116775684A true CN116775684A (zh) 2023-09-19

Family

ID=88009382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310736658.8A Pending CN116775684A (zh) 2023-06-20 2023-06-20 数据处理方法、系统、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116775684A (zh)

Similar Documents

Publication Publication Date Title
US11687555B2 (en) Conditional master election in distributed databases
US7801997B2 (en) Asynchronous interconnect protocol for a clustered DBMS
US11928089B2 (en) Data processing method and device for distributed database, storage medium, and electronic device
JP2010061559A (ja) 情報処理システム、データ更新方法およびデータ更新プログラム
WO2022134797A1 (zh) 一种数据分片存储方法、装置、计算机设备和存储介质
CN105373563B (zh) 数据库切换方法及装置
CN114006946B (zh) 同质资源请求的处理方法、装置、设备及存储介质
CN112835885A (zh) 一种分布式表格存储的处理方法、装置及系统
CN112148206A (zh) 一种数据读写方法、装置、电子设备及介质
CN113094431A (zh) 读写分离方法、装置及服务器
CN107025257A (zh) 一种事务处理方法及装置
CN113132356A (zh) Udp报文的分发方法、设备及存储介质
CN116775684A (zh) 数据处理方法、系统、装置、电子设备及存储介质
CN110659303A (zh) 一种数据库节点的读写控制方法及装置
US20230093004A1 (en) System and method for asynchronous backend processing of expensive command line interface commands
CN112764897B (zh) 任务请求的处理方法、装置、系统及计算机可读存储介质
CN112527900B (zh) 一种数据库读多副本一致性的方法、装置、设备及介质
CN114331445A (zh) 用于海量用户接入的api接口、方法、存储介质及电子设备
CN116594551A (zh) 一种数据存储方法及装置
CN116547660A (zh) 使用全局时间戳的分布式数据库事务的方法和装置
CN110019113B (zh) 一种数据库的业务处理方法及数据库服务器
CN111857548A (zh) 数据读取方法、装置及系统
CN117076409B (zh) 文件共享方法、装置、系统、电子设备及存储介质
CN111221857A (zh) 从分布式系统中读数据记录的方法和装置
CN117082117B (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