CN113590595A - 一种数据库多写方法、装置及相关设备 - Google Patents
一种数据库多写方法、装置及相关设备 Download PDFInfo
- Publication number
- CN113590595A CN113590595A CN202111156691.0A CN202111156691A CN113590595A CN 113590595 A CN113590595 A CN 113590595A CN 202111156691 A CN202111156691 A CN 202111156691A CN 113590595 A CN113590595 A CN 113590595A
- Authority
- CN
- China
- Prior art keywords
- database
- database cluster
- instruction
- write
- writing
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000004891 communication Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 21
- 238000005516 engineering process Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000012827 research and development Methods 0.000 abstract description 7
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库多写方法,包括当第一数据库集群接收到写入指令时,部署于所述第一数据库集群中的Envoy代理拦截所述写入指令;根据所述写入指令确定待写入数据;根据预存第二数据库集群信息与第二数据库集群建立连接,并将所述待写入数据写入所述第二数据库集群;该数据库多写方法实现了代码无侵入的、自动化的数据库多写,提高了数据库多写效率,同时降低了研发成本。本申请还公开了一种数据库多写装置、系统及计算机可读存储介质,均具有上述有益效果。
Description
技术领域
本申请涉及数据库技术领域,特别涉及一种数据库多写方法,还涉及一种数据库多写装置、系统及计算机可读存储介质。
背景技术
在云计算时代,大量微服务应用被部署到云平台上,其存在大量的需要同时写入两个甚至多个数据库集群的情况,比如业务迁移、数据库升级、主备数据库等情况。目前,开发人员往往还是通过修改代码,在写入一个数据库集群的同时,将sql(Structured QueryLanguage,结构化查询语言)在另一个数据库集群中同时写入,这样可以保持两个或多个数据库数据的一致性。然而,这些操作往往工作量巨大,造成了较高的研发成本和较低的工作效率。
因此,如何实现快速高效的数据库多写是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据库多写方法,该数据库多写方法实现了代码无侵入的、自动化的数据库多写,提高了数据库多写效率,同时降低了研发成本;本申请的另一目的是提供一种数据库多写装置、系统及计算机可读存储介质,均具有上述有益效果。
第一方面,本申请提供了一种数据库多写方法,包括:
当第一数据库集群接收到写入指令时,部署于所述第一数据库集群中的Envoy代理拦截所述写入指令;
根据所述写入指令确定待写入数据;
根据预存第二数据库集群信息与第二数据库集群建立连接,并将所述待写入数据写入所述第二数据库集群。
优选的,所述根据所述写入指令确定待写入数据之前,还包括:
对所述写入指令进行解析,获得流量协议;
判断所述流量协议是否符合数据库通信协议;
若是,则执行所述根据所述写入指令确定待写入数据的步骤。
优选的,所述数据库多写方法还包括:
当第一数据库集群接收到读取指令时,获取所述读取指令对应的响应信息;
根据所述响应信息确定读取操作是否成功;
若否,则将所述读取指令转发至所述第二数据库集群;
获取所述第二数据库集群根据所述读取指令反馈的读取数据;
将所述读取数据反馈至所述读取指令的发起端。
优选的,所述获取所述读取指令对应的响应信息之前,还包括:
对所述读取指令进行解析,获得流量协议;
判断所述流量协议是否符合数据库通信协议;
若是,则执行所述获取所述读取指令对应的响应信息的步骤。
优选的,所述数据库多写方法还包括:
当未获得所述第二数据集群反馈的所述读取数据时,输出告警提示。
优选的,所述Envoy代理部署于各数据库集群中,各所述数据库集群中的Envoy代理通过服务网格技术和Wasm技术创建。
优选的,所述根据预存第二数据库集群信息与第二数据库集群建立连接,包括:
根据预存第二数据库集群地址信息与所述第二数据库集群建立连接。
第二方面,本申请还公开了一种数据库多写装置,包括:
指令拦截模块,用于当第一数据库集群接收到写入指令时,部署于所述第一数据库集群中的Envoy代理拦截所述写入指令;
数据确定模块,用于根据所述写入指令确定待写入数据;
数据多写模块,用于根据预存第二数据库集群信息与第二数据库集群建立连接,并将所述待写入数据写入所述第二数据库集群。
第三方面,本申请还公开了一种数据库多写设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的任一种数据库多写方法的步骤。
第四方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任一种数据库多写方法的步骤。
本申请所提供的一种数据库多写方法,包括当第一数据库集群接收到写入指令时,部署于所述第一数据库集群中的Envoy代理拦截所述写入指令;根据所述写入指令确定待写入数据;根据预存第二数据库集群信息与第二数据库集群建立连接,并将所述待写入数据写入所述第二数据库集群。
可见,本申请所提供的数据库多写方法,在各数据库集群中部署Envoy代理,并在Envoy代理中设置自身数据库集群对应的备用数据库集群的相关信息,以便基于该信息与备用数据库集群建立连接,在此基础上,通过Envoy代理对自身数据库集群接收到的数据写入指令进行拦截,并在获得待写入数据后,将其写入至备用数据库集群,从而实现数据库读写。显然,该种实现方式无需进行代码修改即可实现自动化的数据库多写,有效的提高了数据库多写效率,同时降低了研发成本。
本申请所提供的一种数据库多写装置、系统及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。
图1为本申请所提供的一种数据库多写方法的流程示意图;
图2为本申请所提供的一种数据库多写和容灾方法的实现流程图;
图3为本申请所提供的一种数据库多写装置的结构示意图;
图4为本申请所提供的一种数据库多写系统的结构示意图。
具体实施方式
本申请的核心是提供一种数据库多写方法,该数据库多写方法实现了代码无侵入的、自动化的数据库多写,提高了数据库多写效率,同时降低了研发成本;本申请的另一核心是提供一种数据库多写装置、系统及计算机可读存储介质,也具有上述有益效果。
为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据库多写方法。
请参考图1,图1为本申请所提供的一种数据库多写方法的流程示意图,该数据库多写方法可包括:
S101:当第一数据库集群接收到写入指令时,部署于第一数据库集群中的Envoy代理拦截写入指令;
本步骤旨在实现写入指令的拦截,该写入指令即为需要向对应数据库集群写入/存储数据的指令,一般是由客户端向数据库集群发起,以便于将待写入数据存储至该数据库集群。其中,拦截操作可以由部署于数据库集群的Envoy代理实现,Envoy是一个面向服务架构的L7代理和通信总线而设计的一个自组织的模块,与应用Server并无直接依赖。在具体实现过程中,当某一数据库集群(如上第一数据库集群)接收到客户端发起的写入指令时,部署于该数据库集群的Envoy代理将会拦截该指令,以便于利用该写入指令执行后续操作,从而实现数据库多写。
需要说明的是,Envoy代理拦截写入指令旨在基于该写入指令将待写入数据同时存储至其他数据库集群(这里一般为当前数据库集群的备用数据库集群,即第一数据库集群的备用数据库集群,即下述第二数据库集群),但是,并不影响第一数据库集群基于该写入指令执行数据存储操作。
作为一种优选实施例,上述Envoy代理部署于各数据库集群中,各数据库集群中的Envoy代理通过服务网格(Service Mesh)技术和Wasm技术创建。
本优选实施例提供了一种Envoy代理的部署方法,即通过服务网格技术和Wasm技术实现,其中,服务网格技术用于实现各Envoy间的数据通信,Wasm技术用于实现各Envoy中的功能设置与扩展。具体而言,通过服务网格技术和Wasm技术将Envoy代理部署于各个数据库集群,由此,所有的Envoy构建了一个透明的服务网格,处于其中的应用只需要简单的与本地的Envoy进行收发信息,并不需要关注整个网络拓扑。
其中,服务网格是处理服务间通信的基础设施层,其负责通过构成现代云原生应用程序的复杂服务拓扑来可靠地交付请求,在实践中,Service Mesh通常以轻量级网络代理阵列的形式实现,这些代理与应用程序代码部署在一起,对应用程序来说无需感知代理的存在。
其中,Wasm技术支持技术人员编写机器代码以在浏览器的虚拟安全沙箱中运行,甚至升级后的Wasm被设计为其它语言的编译目标,允许将服务器端代码(如C或C++代码等)编译到其中,可以与服务网格结合,扩展其能力。
S102:根据写入指令确定待写入数据;
本步骤旨在实现基于写入指令确定待写入数据。可以理解的是,发起写入指令的客户端可以将待写入数据附加于写入指令中,由此,Envoy代理即可通过对写入指令进行解析获得待写入数据;当然,客户端也可以先向第一数据库集群发起写入指令,以告知第一数据库集群接收待写入数据并存储,然后将待写入数据发送至第一数据库集群,由此,Envoy代理则可以在拦截写入指令后再获取发送至第一数据库集群的待写入数据。可见,待写入数据的获取方法并不唯一,本申请对此不做限定。
作为一种优选实施例,上述根据写入指令确定待写入数据之前,还可以包括:对写入指令进行解析,获得流量协议;判断流量协议是否符合数据库通信协议;若是,则执行根据写入指令确定待写入数据的步骤。
本优选实施例所提供的数据多写方法,可以通过判断写入指令是否符合数据库通信协议来确定是否继续执行数据库多写操作,从而避免由于写入指令不符合数据库通信协议而造成数据库多写失败的情况,节省资源占用和时间浪费。具体而言,当Envoy代理拦截到写入指令时,首先对其进行解析获取其对应的流量协议,然后判断该流量协议是否符合数据库通信协议,若不符合,则不再执行数据库多写操作,丢弃该写入指令即可;如若符合数据库通信协议,则再执行基于写入指令获取待写入数据的步骤,以实现数据库多写功能。
S103:根据预存第二数据库集群信息与第二数据库集群建立连接,并将待写入数据写入第二数据库集群。
本步骤旨在将待写入数据写入第二数据库集群,该第二数据库集群即为第一数据库集群的备用数据库集群,当然,该第二数据库集群的数量可以为多个,即备用数据库集群的数量可以为多个,以便于实现待写入数据的多重备份。此外,第一数据库集群和第二数据库集群可以互为备用数据库集群,即通过第一数据库集群中的Envoy代理可以实现将写入第一数据库集群的数据信息同时写入第二数据库集群,通过第二数据库集群的Envoy代理可以将写入第二数据库集群的数据信息同时写入第一数据库集群。
具体而言,在每个数据库集群的Envoy代理中,均预先设置有其对应的备用数据库集群的相关信息,以便于与备用数据库集群建立连接,从而实现数据库多写功能。也就是说,部署于第一数据库集群的Envoy代理中预存有第二数据库集群的相关信息,即上述预存第二数据库集群信息,由此,在获得待写入数据之后,即可基于该预存第二数据库集群信息与第二数据库集群建立连接,从而将待写入数据写入第二数据库集群,至此,完成数据库多写操作。
作为一种优选实施例,上述根据预存第二数据库集群信息与第二数据库集群建立连接,可以包括:根据预存第二数据库集群地址信息与第二数据库集群建立连接。
本优选实施例提供了一种数据库集群建立连接的实现方法,即基于数据库集群地址信息实现,也就是预先将备用数据库集群的地址信息(如上述预存第二数据库集群地址信息)存储至Envoy代理中,由此,部署于第一数据库集群的Envoy代理即可根据预存第二数据库集群地址信息与第二数据库建立连接,从而实现数据库多写。
作为一种优选实施例,该数据库多写方法还可以包括:当第一数据库集群接收到读取指令时,获取读取指令对应的响应信息;根据响应信息确定读取操作是否成功;若否,则将读取指令转发至第二数据库集群;获取第二数据库集群根据读取指令反馈的读取数据;将读取数据反馈至读取指令的发起端。
本优选实施例所提供的数据库多写方法还可以实现读取指令拦截,以便于当第一数据库集群发生异常无法返回读取数据时,可以从第二数据库集群读取数据并返回至发起读取指令的客户端,从而实现数据库备份容灾功能。
具体而言,当客户端需要从第一数据库集群读取数据时,则可以向第一数据库集群发起读取指令,此时,部署于第一数据库集群的Envoy代理同样会拦截该读取指令,并获取第一数据库集群对该读取指令的响应信息;进一步,根据该响应信息判断读取操作是否成功,即判断第一数据库集群是否成功向客户端反馈读取数据,若是,则无需执行其他操作,丢弃该读取指令即可,反之,如若第一数据库集群的读取操作失败,则可以将该读取指令发送至第二数据库集群,以便于从第二数据库集群读取目标数据,并将读取数据返回至客户端。
作为一种优选实施例,上述获取读取指令对应的响应信息之前,还可以包括:对读取指令进行解析,获得流量协议;判断流量协议是否符合数据库通信协议;若是,则执行获取读取指令对应的响应信息的步骤。
如上所述,可以通过判断写入指令是否符合数据库通信协议来确定是否继续执行数据库多写操作,从而避免由于写入指令不符合数据库通信协议而造成数据库多写失败的情况,节省资源占用和时间浪费。基于此,同样可以通过判断读取指令是否符合数据库通信协议来确定是否执行对于第二数据库集群的数据读取操作,从而避免由于读取指令不符合数据库通信协议而造成无法从第二数据库集群读取数据的情况,节省资源占用和时间浪费。具体而言,当Envoy代理拦截到读取指令时,首先对其进行解析获取其对应的流量协议,然后判断该流量协议是否符合数据库通信协议,若不符合,则不再去第二数据库集群读取数据,丢弃该写入指令即可;如若符合数据库通信协议,则再执行基于读取指令从第二数据库集群读取数据的步骤。
作为一种优选实施例,该数据库多写方法还可以包括:当未获得第二数据集群反馈的读取数据时,输出告警提示。
本优选实施例所提供的数据库多写方法还可以实现告警功能。具体而言,当第一数据库集群无法向客户端反馈读取数据,且第一数据库集群的Envoy代理也无法从第二数据库集群中获得读取数据时,说明第一数据库集群以及第二数据库集群均发生异常,此时,即可输出告警提示,从而告知技术人员当前数据库集群发生异常,以便于技术人员可以及时进行异常溯源与维护。
可见,本申请所提供的数据库多写方法,在各数据库集群中部署Envoy代理,并在Envoy代理中设置自身数据库集群对应的备用数据库集群的相关信息,以便基于该信息与备用数据库集群建立连接,在此基础上,通过Envoy代理对自身数据库集群接收到的数据写入指令进行拦截,并在获得待写入数据后,将其写入至备用数据库集群,从而实现数据库读写。显然,该种实现方式无需进行代码修改即可实现自动化的数据库多写,有效的提高了数据库多写效率,同时降低了研发成本。
基于以上各实施例,本申请实施例提供了另一种数据库多写方法。
具体来说,本申请所提供的数据库多写方法,在数据库集群的每个实例(可以是pod或虚拟机物理机)上都部署一个Envoy代理,进而通过配置Envoy代理实现写入数据库集群A的数据同时写入到数据库集群B;同时,如果在查询主数据库的时候出现异常和超时的情况,则可以自动将流量重定向到备份数据库集群。
首先,数据库集群中Envoy代理的部署与配置过程如下:
1、利用服务网格技术,给数据库集群实例创建Envoy代理,以便于利用Envoy代理的流量劫持能力,将对数据库集群的请求流量劫持到Envoy代理中,其中,Envoy代理具有对流量进行解包、处理、再封包的能力。
2、配置对数据库通信协议(目前主要支持mysql协议)进行解析的功能,Envoy代理捕获到tcp连接后,根据Handshake packet(由Server向Client发送的初始化包)中的前4个字节,即可识别出流量包是否为数据库的流量,并且,根据解析后续client向server发送的执行命令的流量,可以获取相应的sql指令。由此,通过解析捕获到的数据库集群的响应信息即可识别命令是否执行成功,如果执行失败,则默认将相同的sql命令转发到备份数据库集群。
3、上述数据库通信协议解析过程可通过编写c++代码实现,然后应用Wasm技术,将对数据库流量的拦截解析过程制作成一个Wasm形式的filter(过滤器)添加到Envoy代理中,从而使得原本不具有相关功能的Envoy代理具备了解析数据库流量的能力。并且,使用服务网格的控制面istio可以做到自定义filter的动态添加,在istio的配置文件中,可以将备份的数据库作为一个参数在istio中进行配置,从而做到备份数据库ip地址的可配置。
进一步,请参考图2,图2为本申请所提供的一种数据库多写和容灾方法的实现流程图,包括:
1、Client向数据库集群A建立连接,执行写入或读取操作,数据库集群A和数据库集群B已开启服务治理的Envoy代理;
2、Client向数据库集群A建立连接执行操作时,tcp流量被Envoy代理劫持,并传递给Envoy代理中的filter进行处理;
3、流量被传递给自定义的用于处理数据库流量的Wasm filter进行处理,其处理流程如下:
(1)根据从流量请求中解析得到的字节判断是否符合数据库通信协议,如果是则进行下一步,不是则直接跳过后面的处理;
(2)根据备份数据库集群B的地址信息与备份数据库集群B建立连接;
(3)如若获取到写类型的命令,则将其同时转发给数据库集群B,完成数据库多写操作;
(4)如若获取到读类型的命令,则获取该命令的响应信息,以判断读取操作是否执行成功,如果失败,则将该命令转发到备份数据库集群B,以获取备份数据库集群B中的备份数据,从而达到数据库备份容灾的特性。
可见,本申请实施例所提供的数据库多写方法,在各数据库集群中部署Envoy代理,并在Envoy代理中设置自身数据库集群对应的备用数据库集群的相关信息,以便基于该信息与备用数据库集群建立连接,在此基础上,通过Envoy代理对自身数据库集群接收到的数据写入指令进行拦截,并在获得待写入数据后,将其写入至备用数据库集群,从而实现数据库读写。显然,该种实现方式无需进行代码修改即可实现自动化的数据库多写,有效的提高了数据库多写效率,同时降低了研发成本。
为解决上述技术问题,本申请还提供了一种数据库多写装置,请参考图3,图3为本申请所提供的一种数据库多写装置的结构示意图,该数据库多写装置可包括:
指令拦截模块1,用于当第一数据库集群接收到写入指令时,部署于第一数据库集群中的Envoy代理拦截写入指令;
数据确定模块2,用于根据写入指令确定待写入数据;
数据多写模块3,用于根据预存第二数据库集群信息与第二数据库集群建立连接,并将待写入数据写入第二数据库集群。
可见,本申请实施例所提供的数据库多写装置,在各数据库集群中部署Envoy代理,并在Envoy代理中设置自身数据库集群对应的备用数据库集群的相关信息,以便基于该信息与备用数据库集群建立连接,在此基础上,通过Envoy代理对自身数据库集群接收到的数据写入指令进行拦截,并在获得待写入数据后,将其写入至备用数据库集群,从而实现数据库读写。显然,该种实现方式无需进行代码修改即可实现自动化的数据库多写,有效的提高了数据库多写效率,同时降低了研发成本。
作为一种优选实施例,该数据库多写装置还可以包括协议判断模块,用于在上述根据写入指令确定待写入数据之前,对写入指令进行解析,获得流量协议;判断流量协议是否符合数据库通信协议;若是,则执行根据写入指令确定待写入数据的步骤。
作为一种优选实施例,该数据库多写装置还可以包括数据读取模块,该数据读取模块可以包括:
响应信息获取单元,用于当第一数据库集群接收到读取指令时,获取读取指令对应的响应信息;
读取操作判断单元,用于根据响应信息确定读取操作是否成功;
读取指令转发单元,用于若读取操作未成功,则将读取指令转发至第二数据库集群;
读取数据获取单元,用于获取第二数据库集群根据读取指令反馈的读取数据;
读取数据反馈单元,用于将读取数据反馈至读取指令的发起端。
作为一种优选实施例,上述数据读取模块还可以包括协议判断单元,用于在上述获取读取指令对应的响应信息之前,对读取指令进行解析,获得流量协议;判断流量协议是否符合数据库通信协议;若是,则执行获取读取指令对应的响应信息的步骤。
作为一种优选实施例,上述数据读取模块还可以包括告警提示模块,用于当未获得第二数据集群反馈的读取数据时,输出告警提示。
作为一种优选实施例,上述Envoy代理部署于各数据库集群中,各数据库集群中的Envoy代理通过服务网格技术和Wasm技术创建。
作为一种优选实施例,上述数据多写模块3可具体用于根据预存第二数据库集群地址信息与第二数据库集群建立连接。
对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述技术问题,本申请还提供了一种数据库多写系统,请参考图4,图4为本申请所提供的一种数据库多写系统的结构示意图,该数据库多写系统可包括:
存储器10,用于存储计算机程序;
处理器20,用于执行计算机程序时可实现如上述任意一种数据库多写方法的步骤。
对于本申请提供的系统的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种数据库多写方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。
Claims (10)
1.一种数据库多写方法,其特征在于,包括:
当第一数据库集群接收到写入指令时,部署于所述第一数据库集群中的Envoy代理拦截所述写入指令;
根据所述写入指令确定待写入数据;
根据预存第二数据库集群信息与第二数据库集群建立连接,并将所述待写入数据写入所述第二数据库集群。
2.根据权利要求1所述的数据库多写方法,其特征在于,所述根据所述写入指令确定待写入数据之前,还包括:
对所述写入指令进行解析,获得流量协议;
判断所述流量协议是否符合数据库通信协议;
若是,则执行所述根据所述写入指令确定待写入数据的步骤。
3.根据权利要求1所述的数据库多写方法,其特征在于,还包括:
当第一数据库集群接收到读取指令时,获取所述读取指令对应的响应信息;
根据所述响应信息确定读取操作是否成功;
若否,则将所述读取指令转发至所述第二数据库集群;
获取所述第二数据库集群根据所述读取指令反馈的读取数据;
将所述读取数据反馈至所述读取指令的发起端。
4.根据权利要求3所述的数据库多写方法,其特征在于,所述获取所述读取指令对应的响应信息之前,还包括:
对所述读取指令进行解析,获得流量协议;
判断所述流量协议是否符合数据库通信协议;
若是,则执行所述获取所述读取指令对应的响应信息的步骤。
5.根据权利要求3所述的数据库多写方法,其特征在于,还包括:
当未获得所述第二数据集群反馈的所述读取数据时,输出告警提示。
6.根据权利要求1所述的数据库多写方法,其特征在于,所述Envoy代理部署于各数据库集群中,各所述数据库集群中的Envoy代理通过服务网格技术和Wasm技术创建。
7.根据权利要求1所述的数据库多写方法,其特征在于,所述根据预存第二数据库集群信息与第二数据库集群建立连接,包括:
根据预存第二数据库集群地址信息与所述第二数据库集群建立连接。
8.一种数据库多写装置,其特征在于,包括:
指令拦截模块,用于当第一数据库集群接收到写入指令时,部署于所述第一数据库集群中的Envoy代理拦截所述写入指令;
数据确定模块,用于根据所述写入指令确定待写入数据;
数据多写模块,用于根据预存第二数据库集群信息与第二数据库集群建立连接,并将所述待写入数据写入所述第二数据库集群。
9.一种数据库多写系统,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的数据库多写方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据库多写方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111156691.0A CN113590595A (zh) | 2021-09-30 | 2021-09-30 | 一种数据库多写方法、装置及相关设备 |
PCT/CN2022/078209 WO2023050706A1 (zh) | 2021-09-30 | 2022-02-28 | 一种数据库多写方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111156691.0A CN113590595A (zh) | 2021-09-30 | 2021-09-30 | 一种数据库多写方法、装置及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113590595A true CN113590595A (zh) | 2021-11-02 |
Family
ID=78242649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111156691.0A Pending CN113590595A (zh) | 2021-09-30 | 2021-09-30 | 一种数据库多写方法、装置及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113590595A (zh) |
WO (1) | WO2023050706A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466027A (zh) * | 2022-01-26 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种云原生数据库服务提供方法、系统、设备及介质 |
CN115242807A (zh) * | 2022-06-30 | 2022-10-25 | 深圳震有科技股份有限公司 | 一种5g通信系统中的数据存取方法及相关设备 |
WO2023050706A1 (zh) * | 2021-09-30 | 2023-04-06 | 苏州浪潮智能科技有限公司 | 一种数据库多写方法、装置及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现系统及方法 |
CN104219085A (zh) * | 2014-08-07 | 2014-12-17 | 深圳市同洲电子股份有限公司 | 一种数据库的数据处理方法、代理服务器及系统 |
CN110096552A (zh) * | 2019-05-07 | 2019-08-06 | 广州虎牙信息科技有限公司 | 一种业务数据的读、写方法、装置、设备和存储介质 |
CN112866406A (zh) * | 2021-02-04 | 2021-05-28 | 建信金融科技有限责任公司 | 一种数据存储方法、系统、装置、设备及存储介质 |
CN113396407A (zh) * | 2018-12-04 | 2021-09-14 | 泽乌科技公司 | 用于利用区块链技术扩充数据库应用的系统和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107295080B (zh) * | 2017-06-19 | 2020-12-18 | 北京百度网讯科技有限公司 | 应用于分布式服务器集群的数据存储方法和服务器 |
CN109508259A (zh) * | 2018-11-16 | 2019-03-22 | 郑州云海信息技术有限公司 | 一种数据存储的方法和装置 |
CN113590595A (zh) * | 2021-09-30 | 2021-11-02 | 苏州浪潮智能科技有限公司 | 一种数据库多写方法、装置及相关设备 |
-
2021
- 2021-09-30 CN CN202111156691.0A patent/CN113590595A/zh active Pending
-
2022
- 2022-02-28 WO PCT/CN2022/078209 patent/WO2023050706A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现系统及方法 |
CN104219085A (zh) * | 2014-08-07 | 2014-12-17 | 深圳市同洲电子股份有限公司 | 一种数据库的数据处理方法、代理服务器及系统 |
CN113396407A (zh) * | 2018-12-04 | 2021-09-14 | 泽乌科技公司 | 用于利用区块链技术扩充数据库应用的系统和方法 |
CN110096552A (zh) * | 2019-05-07 | 2019-08-06 | 广州虎牙信息科技有限公司 | 一种业务数据的读、写方法、装置、设备和存储介质 |
CN112866406A (zh) * | 2021-02-04 | 2021-05-28 | 建信金融科技有限责任公司 | 一种数据存储方法、系统、装置、设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023050706A1 (zh) * | 2021-09-30 | 2023-04-06 | 苏州浪潮智能科技有限公司 | 一种数据库多写方法、装置及相关设备 |
CN114466027A (zh) * | 2022-01-26 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种云原生数据库服务提供方法、系统、设备及介质 |
CN114466027B (zh) * | 2022-01-26 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 一种云原生数据库服务提供方法、系统、设备及介质 |
CN115242807A (zh) * | 2022-06-30 | 2022-10-25 | 深圳震有科技股份有限公司 | 一种5g通信系统中的数据存取方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2023050706A1 (zh) | 2023-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113590595A (zh) | 一种数据库多写方法、装置及相关设备 | |
CN108170448B (zh) | 一种自动化高效进行软件更新版本发布的系统 | |
CN107729176B (zh) | 一种配置文件管理系统的容灾方法及容灾系统 | |
CN108255708B (zh) | 测试环境中访问生产文件的方法、装置、存储介质及设备 | |
US10404568B2 (en) | Agent manager for distributed transaction monitoring system | |
CN115220874B (zh) | 一种Kubernetes集群部署方法、装置、设备及存储介质 | |
CN111666217B (zh) | 用于测试代码的方法和装置 | |
CN111679888A (zh) | 一种代理容器的部署方法及装置 | |
CN112083971B (zh) | 组件处理方法、设备及存储介质 | |
CN111770174A (zh) | 一种云平台部署方法、装置、设备及可读存储介质 | |
CN112564989A (zh) | 应用部署方法和装置 | |
CN114157654B (zh) | 一种集成电路协同设计系统和方法 | |
CN106445541B (zh) | 软件构建方法、软件构建装置和软件构建系统 | |
CN112860251A (zh) | 一种网站前端构建的方法与系统 | |
CN110780918A (zh) | 中间件容器处理方法、装置、电子设备及存储介质 | |
CN113296795A (zh) | 应用部署方法、装置、设备、存储介质及程序产品 | |
CN116244186A (zh) | 一种操作系统测试管理方法、装置与计算设备 | |
CN115629856A (zh) | 一种云管平台的运维工具和云管平台的系统运维方法 | |
CN115952129A (zh) | 一种刀片服务器设置方法、装置及可读存储介质 | |
CN111431951B (zh) | 一种数据处理方法、节点设备、系统及存储介质 | |
CN112433938A (zh) | 移动端应用测试的方法和装置 | |
CN112256289A (zh) | 一种自动部署方法、装置及设备 | |
CN113507388B (zh) | 设备部署配置方法、装置、电子设备及存储介质 | |
CN112565398B (zh) | Gfs数据下载方法、装置、电子设备以及存储介质 | |
CN109683924B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211102 |
|
RJ01 | Rejection of invention patent application after publication |