CN110225087A - 基于全局负载均衡的云存取方法、装置及存储介质 - Google Patents
基于全局负载均衡的云存取方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110225087A CN110225087A CN201910380139.6A CN201910380139A CN110225087A CN 110225087 A CN110225087 A CN 110225087A CN 201910380139 A CN201910380139 A CN 201910380139A CN 110225087 A CN110225087 A CN 110225087A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- cloud
- database
- load balancing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及云储存技术领域,公开了一种基于全局负载均衡的云存取方法,该方法包括:在云数据库系统中按照预设的节点选择方法选择一个客户端用户对应的最佳数据库节点;利用基于HTTP的重定向,将客户端用户的访问重定向到该最佳数据库节点,在该最佳数据库节点上执行数据存取操作;在云数据库系统中的各个数据库节点中执行了数据存取操作后,同步各个数据库节点之间的数据。本发明还提出一种基于全局负载均衡的云存取装置以及一种计算机可读存储介质。本发明提供了一种多活高可用的云数据存取方案。
Description
技术领域
本发明涉及云存储技术领域,尤其涉及一种基于全局负载均衡的云存取方法、装置及计算机可读存储介质。
背景技术
目前大多数云数据库采用一主多备的部署架构来提供高可用保障,通过binlog的数据复制技术维护数据一致性。用户只能向主库写入数据,容灾库从主库同步数据。但是,当用户跨区域访问云数据库时,数据经过多次网络转发,容易受到地域、带宽等因素影响而导致高延迟、低可用性的问题,影响用户体验。并且,只有当主库因断电、自然灾害等因素无法使用时,灾备被激活成主库,才能对外提供服务。在正常情况下,灾备库大多时候处于闲置状态,资源使用率极低。因此迫切需要一个多活的并且可以根据用户地域、延时等因素智能选择云数据库节点的高可用云数据库系统。
发明内容
本发明提供一种基于全局负载均衡的云存取方法、装置及计算机可读存储介质,其主要目的在于提供一种多活高可用的云数据库存取方案。
为实现上述目的,本发明提供的一种基于全局负载均衡的云存取方法,包括:
在云数据库系统中按照预设的节点选择方法选择一个客户端用户对应的最佳数据库节点;
利用基于HTTP的重定向,将客户端用户的访问重定向到该最佳数据库节点,在该最佳数据库节点上执行数据存取操作;
在云数据库系统中的各个数据库节点中执行数据存取操作后,同步各个数据库节点之间的数据。
可选地,所述预设的节点选择方法包括:
在云数据库系统中的每个数据库节点处,分别存放一个测试图片test.jpg;
在云数据库系统的网站主页嵌入一段测速脚本程序,当客户端用户访问所述网站主页时,测速脚本程序被触发,并开始计时;
客户端用户根据测速脚本程序中的地址,从云数据库系统中的各个数据库节点中下载预存的测试图片test.jpg;
生成已测速的cookie数据并提交下载所耗时间给云数据库系统中的全局负载均衡设备,并按照所述下载所耗时间从少到多的顺序,选择多个备选数据库节点;
获取云数据库系统中各个数据库节点的运行日志,分析各个数据库节点的健康信息,包括CPU使用率、内存使用率、网络占用率;
根据所述健康信息,从所述多个备选数据库节点选择健康信息最佳的数据库节点作为所述最佳数据库节点。
可选地,所述重定向包括:
本地域名系统接收客户端用户输入的域名并解析所述域名;
当所述本地域名系统无法解析所述域名时,逐级向上级域名系统发出解析请求;
上级域名系统根据其所存储的地址记录,返回全局负载均衡设备所在的IP地址给本地域名系统;
客户端用户向所述全局负载均衡设备发出TCP连接,并请求存取数据;
全局负载均衡设备根据上述选择的最佳数据库节点,返回HTTP重定向的IP,即所述最佳数据库节点的地址;
客户端用户到所述最佳数据库节点执行数据存取操作。
可选地,所述同步各个数据库节点之间的数据包括数据的复制,其中所述数据的复制包括:
在云数据库系统中的各个数据库节点的连接驱动中设置SQL捕获器,其中,所述SQL捕获器用于捕获能改变数据库节点中数据记录的SQL语句,并过滤掉不改变数据库数据的语句;
将捕获到的SQL语句使用消息队列服务器发送给异地数据库节点,使消息被异地数据库节点接受并解析后执行数据的一致性操作。
可选地,所述同步各个数据库节点之间的数据还包括数据的一致性校验,其中,所述数据的一致性校验包括:
将云数据库系统中的主备数据库节点中的SQL操作定义成一个事务,当主备数据库节点数据都成功完成更新操作时,允许提交所述事务,否则有任意一个操作失败则对所述事务执行回滚操作。
此外,为实现上述目的,本发明还提供一种基于全局负载均衡的云存取装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的基于全局负载均衡的云存取程序,所述基于全局负载均衡的云存取程序被所述处理器执行时实现如下步骤:
在云数据库系统中按照预设的节点选择方法选择一个客户端用户对应的最佳数据库节点;
利用基于HTTP的重定向,将客户端用户的访问重定向到该最佳数据库节点,在该最佳数据库节点上执行数据存取操作;
在云数据库系统中的各个数据库节点中执行了数据存取操作后,同步各个数据库节点之间的数据。
可选地,所述预设的节点选择方法包括:
在云数据库系统中的每个数据库节点处,分别存放一个测试图片test.jpg;
在云数据库系统的网站主页嵌入一段测速脚本程序,当客户端用户访问所述网站主页时,测速脚本程序被触发,并开始计时;
客户端用户根据测速脚本程序中的地址,从云数据库系统中的各个数据库节点中下载预存的测试图片test.jpg;
生成已测速的cookie数据并提交下载所耗时间给云数据库系统中的全局负载均衡设备,并按照所述下载所耗时间从少到多的顺序,选择多个备选数据库节点;
获取云数据库系统中各个数据库节点的运行日志,分析各个数据库节点的健康信息,包括CPU使用率、内存使用率、网络占用率;
根据所述健康信息,从所述多个备选数据库节点选择健康信息最佳的数据库节点作为所述最佳数据库节点。
可选地,所述重定向包括:
本地域名系统接收客户端用户输入的域名,并解析所述域名;
当所述本地域名系统无法解析所述域名时,逐级向上级域名系统发出解析请求;
所述上级域名系统根据其所存储的地址记录,返回全局负载均衡设备所在的IP地址给本地域名系统;
客户端用户向所述全局负载均衡设备发出TCP连接,并请求存取数据;
全局负载均衡设备根据上述选择的最佳数据库节点,返回HTTP重定向的IP,即所述最佳数据库节点的地址;
客户端用户到所述最佳数据库节点执行数据存取操作。
可选地,所述同步各个数据库节点之间的数据包括:
在云数据库系统中的各个数据库节点的连接驱动中设置SQL捕获器,其中,所述SQL捕获器用于捕获能改变数据库节点中数据记录的SQL语句,并过滤掉不改变数据库数据的语句;
将捕获到的SQL语句使用消息队列服务器发送给异地数据库节点,使消息被异地数据库节点接受并解析后执行数据的一致性操作。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于全局负载均衡的云存取程序,所述基于全局负载均衡的云存取程序可被一个或者多个处理器执行,以实现如上所述的基于全局负载均衡的云存取方法的步骤。
本发明提出的基于全局负载均衡的云存取方法、装置及计算机可读存储介质引入全局负载均衡技术到云数据库系统的资源调度,找出客户端用户对应的最佳数据库节点,然后执行HTTP重定向给客户端用户,实现了基于全局负载均衡的多活高可用云数据库系统。
附图说明
图1为本发明一实施例提供的基于全局负载均衡的云存取方法的流程示意图;
图2为本发明一实施例提供的基于全局负载均衡的云存取装置的内部结构示意图;
图3为本发明一实施例提供的基于全局负载均衡的云存取装置中基于全局负载均衡的云存取程序的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于全局负载均衡(Global Server Load Balance,GSLB)的云存取方法。参照图1所示,为本发明一实施例提供的基于全局负载均衡的云存取方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,基于全局负载均衡的云存取方法包括:
S1、在云数据库系统中按照预设的节点选择方法选择一个客户端用户对应的最佳数据库节点。
本发明较佳实施例中,最佳数据库节点为距离当前有数据存取需求的客户端用户最近且运行状况最佳的云数据库系统中的数据库节点。
详细地,在本实施例中,所述预设的节点选择方法包括:
Ⅰ、在云数据库系统中的每个数据库节点处,分别存放一个大小约为20KB的测试图片test.jpg;
Ⅱ、在云数据库系统的网站主页嵌入一段测速脚本程序,当客户端用户访问所述网站主页时,测速脚本程序被触发,并开始计时;
Ⅲ、客户端用户根据测速脚本程序中的地址,从云数据库系统中的各个数据库节点中下载预存的测试图片test.jpg;
Ⅳ、生成已测速的cookie数据并提交下载所耗时间给云数据库系统中的全局负载均衡设备,并按照所述下载所耗时间从少到多的顺序,选择多个备选数据库节点;
Ⅴ、获取云数据库系统中各个数据库节点的运行日志,分析各个数据库节点的健康信息,如CPU使用率、内存使用率、网络占用率等;
Ⅵ、根据所述健康信息,从所述多个备选数据库节点选择健康信息最佳的数据库节点作为最佳数据库节点。
S2、利用基于HTTP的重定向,将客户端用户的访问重定向到该最佳数据库节点,在该最佳数据库节点上执行数据存取操作。
详细地,在本实施例中,所述重定向包括:
Ⅰ、接收客户端用户在浏览器中输入的域名,本地域名系统对所述域名尝试解析;
Ⅱ、当所述域名系统无法解析所述域名时,逐级向上级域名系统发出解析请求;
Ⅲ、上级域名系统根据其所存储的地址记录,返回全局负载均衡设备所在的IP地址给本地域名系统;
Ⅳ、客户端用户向所述全局负载均衡设备发出TCP连接,并请求存取数据;
Ⅴ、全局负载均衡设备根据上述选择的最佳数据库节点,返回HTTP重定向的IP,即所述最佳数据库节点的地址;
Ⅵ、客户端用户到所述最佳数据库节点执行数据存取操作。
基于HTTP重定向的技术充分利用了全局负载均衡的智能选择最佳数据库节点的策略,从而使用户能能够访问最近的运行状态最佳的数据库节点。
上述步骤S1及S2通过全局负载均衡将用户的访问操作导向云数据库系统中的距离最近、运行状态最佳的数据库节点,从而提供更快的响应速度,改善用户体验,然而,这可能导致云数据库系统中各个数据库节点的数据存在独立、不一致的情况,违背了云数据库系统基本的数据一致性原则,因此需要同步各个云数据库节点之间的数据。
S3、在云数据库系统中的各个数据库节点中执行了数据存取操作后,同步各个数据库节点之间的数据。
本发明较佳实施例中,所述各个数据库节点之间的数据同步包括数据的复制以及一致性校验操作。
为了实现云数据库系统中的各个数据库节点之间的数据的相互复制,本发明较佳实施例中采取了一种对等同步机制。
所述对等同步机制分别在云数据库系统中的各个数据库节点的连接驱动中设置SQL(结构化查询语言,Structured Query Language)捕获器。该SQL捕获器仅捕获能改变数据库节点中数据记录的SQL语句,如插入、更新等操作类型,并过滤掉查询等操作类型对不改变数据库数据的语句。其中本地数据库节点将捕获到的SQL语句使用消息队列服务器发送给异地数据库节点,消息被异地数据库节点接受后经过解析后执行数据的一致性操作,如数据的复制或者更新等。
在数据一致性策略上,本发明实施例采用强一致性策略,将云数据库系统中的主备数据库节点中的SQL操作定义成一个事务,主备数据库节点数据都更新操作成功,整个事务才可提交,否则有任意一个操作失败都将事务执行回滚操作,这样可以有效的保证强一致性。
如果对系统的可用性要求较高,本发明实施例也可以使用最终一致性策略,即不必等待异地数据库节点操作的结果,本地数据库节点可以直接提交,对于操作失败的情况可以通过校验库来进行校验。因此可以依据一致性与可用性之间的要求进行选择。
针对上述机制可能出现的数据一致性情况,发明较佳实施例提出了针对性的检验纠正算法,包括:
1、本地数据库节点操作完成之后,判断该次操作是否执行成功。若执行成功,在校验库中构造校验对象,校验对象由操作记录、操作时间戳和布尔型标识组成。其中,操作记录为主键,操作时间戳为系统当前操作的时间,布尔型标识为一个表示此操作是否应用到了异地数据库中的标志位(这里值默认设置为false)。若执行失败,直接结束。
2、异地数据库节点操作完成后,判断该次操作是否执行成功。若执行成功,查询校验库,按主键(操作记录)查询,若校验库中存在该记录,更新该记录(将标志位的值false修改为true);若不存在,直接将该记录插入到校验数据库中(标志位的值默认为false)。若执行失败,直接结束。
此时校验库中的情况:若本地云数据库与异地云数据库数据一致,则校验库中标志位都为true。若本地云数据库操作成功,而异地云数据库操作失败,则相应的操作记录的标志位为false。若本地数据库操作失败,而异地云数据库操作操作成功,则相应的操作记录的标志位也为false。
若标志位的值全是true,则说明本地数据库与异地数据库中的数据完全相同,校验结束。若标志位为false,且本地数据库中存在这些记录,则该记录要求插入到异地数据库中。不论插入或者删除执行是否成功,都将标志位值为true的记录删除,这样保证了本地与异地的数据库数据一致。而剩下的标志位为false的记录是冗余数据,可以留到下一校验周期中校验。校验周期可以按实际生产情况及服务器性能进行设置。
本发明还提供一种基于全局负载均衡的云存取装置。参照图2所示,为本发明一实施例提供的基于全局负载均衡的云存取装置的内部结构示意图。
在本实施例中,基于全局负载均衡的云存取装置1可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、便携计算机等终端设备。该基于全局负载均衡的云存取装置1至少包括存储器11、处理器12,通信总线13,以及网络接口14。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是基于全局负载均衡的云存取装置1的内部存储单元,例如该基于全局负载均衡的云存取装置1的硬盘。存储器11在另一些实施例中也可以是基于全局负载均衡的云存取装置1的外部存储设备,例如基于全局负载均衡的云存取装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括基于全局负载均衡的云存取装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于基于全局负载均衡的云存取装置1的应用软件及各类数据,例如基于全局负载均衡的云存取程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行基于全局负载均衡的云存取程序01等。
通信总线13用于实现这些组件之间的连接通信。
网络接口14可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该装置1与其他电子设备之间建立通信连接。
可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在基于全局负载均衡的云存取装置1中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11-14以及基于全局负载均衡的云存取程序01的基于全局负载均衡的云存取装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对基于全局负载均衡的云存取装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图2所示的装置1实施例中,存储器11中存储有基于全局负载均衡的云存取程序01;处理器12执行存储器11中存储的基于全局负载均衡的云存取程序01时实现如下步骤:
步骤一、在云数据库系统中按照预设的节点选择方法选择一个客户端用户对应的最佳数据库节点。
本发明较佳实施例中,最佳数据库节点为距离当前有数据存取需求的客户端用户最近且运行状况最佳的云数据库系统中的数据库节点。
详细地,在本实施例中,所述预设的节点选择方法包括:
Ⅰ、在云数据库系统中的每个数据库节点处,分别存放一个大小约为20KB的测试图片test.jpg;
Ⅱ、在云数据库系统的网站主页嵌入一段测速脚本程序,当客户端用户访问所述网站主页时,测速脚本程序被触发,并开始计时;
Ⅲ、客户端用户根据测速脚本程序中的地址,从云数据库系统中的各个数据库节点中下载预存的测试图片test.jpg;
Ⅳ、生成已测速的cookie数据并提交下载所耗时间给云数据库系统中的全局负载均衡设备,并按照所述下载所耗时间从少到多的顺序,选择多个备选数据库节点;
Ⅴ、获取云数据库系统中各个数据库节点的运行日志,分析各个数据库节点的健康信息,如CPU使用率、内存使用率、网络占用率等;
Ⅵ、根据所述健康信息,从所述多个备选数据库节点选择健康信息最佳的数据库节点作为最佳数据库节点。
步骤二、利用基于HTTP的重定向,将客户端用户的访问重定向到该最佳数据库节点,在该最佳数据库节点上执行数据存取操作。
详细地,在本实施例中,所述重定向包括:
Ⅰ、接收客户端用户在浏览器中输入的域名,本地域名系统对所述域名尝试解析;
Ⅱ、当所述域名系统无法解析所述域名时,逐级向上级域名系统发出解析请求;
Ⅲ、上级域名系统根据其所存储的地址记录,返回全局负载均衡设备所在的IP地址给本地域名系统;
Ⅳ、客户端用户向所述全局负载均衡设备发出TCP连接,并请求存取数据;
Ⅴ、全局负载均衡设备根据上述选择的最佳数据库节点,返回HTTP重定向的IP,即所述最佳数据库节点的地址;
Ⅵ、客户端用户到所述最佳数据库节点执行数据存取操作。
基于HTTP重定向的技术充分利用了全局负载均衡的智能选择最佳数据库节点的策略,从而使用户能能够访问最近的运行状态最佳的数据库节点。
上述步骤一及步骤二通过全局负载均衡将用户的访问操作导向云数据库系统中的距离最近、运行状态最佳的数据库节点,从而提供更快的响应速度,改善用户体验,然而,这可能导致云数据库系统中各个数据库节点的数据存在独立、不一致的情况,违背了云数据库系统基本的数据一致性原则,因此需要同步各个云数据库节点之间的数据。
步骤三、在云数据库系统中的各个数据库节点中执行了数据存取操作后,同步各个数据库节点之间的数据。
本发明较佳实施例中,所述各个数据库节点之间的数据同步包括数据的复制以及一致性校验操作。
为了实现云数据库系统中的各个数据库节点之间的数据的相互复制,本发明较佳实施例中采取了一种对等同步机制。
所述对等同步机制分别在云数据库系统中的各个数据库节点的连接驱动中设置SQL(结构化查询语言,Structured Query Language)捕获器。该SQL捕获器仅捕获能改变数据库节点中数据记录的SQL语句,如插入、更新等操作类型。并过滤掉查询等操作类型对不改变数据库数据的语句。其中本地数据库节点将捕获到的SQL语句使用消息队列服务器发送给异地数据库节点,消息被异地数据库节点接受后经过解析后执行数据的一致性操作,如数据的复制或者更新等。
在数据一致性策略上,本发明实施例采用强一致性策略,将云数据库系统中的主备数据库节点中的SQL操作定义成一个事务,主备数据库节点数据都更新操作成功,整个事务才可提交,否则有任意一个操作失败都将事务执行回滚操作,这样可以有效的保证强一致性。
如果对系统的可用性要求较高,本发明实施例也可以使用最终一致性策略,即不必等待异地数据库节点操作的结果,本地数据库节点可以直接提交,对于操作失败的情况可以通过校验库来进行校验。因此可以依据一致性与可用性之间的要求进行选择。
针对上述机制可能出现的数据一致性情况,发明较佳实施例提出了针对性的检验纠正算法,包括:
1、本地数据库节点操作完成之后,判断该次操作是否执行成功。若执行成功,在校验库中构造校验对象,校验对象由操作记录、操作时间戳和布尔型标识组成。其中,操作记录为主键,操作时间戳为系统当前操作的时间,布尔型标识为一个表示此操作是否应用到了异地数据库中的标志位(这里值默认设置为false)。若执行失败,直接结束。
2、异地数据库节点操作完成后,判断该次操作是否执行成功。若执行成功,则查询校验库,按主键(操作记录)查询,若校验库中存在该记录,更新该记录(将标志位的值false修改为true);若不存在,直接将该记录插入到校验数据库中(标志位的值默认为false)。若执行失败,直接结束。
此时校验库中的情况:若本地云数据库与异地云数据库数据一致,则校验库中标志位都为true。若本地云数据库操作成功,而异地云数据库操作失败,则相应的操作记录的标志位为false。若本地数据库操作失败,而异地云数据库操作操作成功,则相应的操作记录的标志位也为false。
若标志位的值全是true,则说明本地数据库与异地数据库中的数据完全相同,校验结束。若标志位为false,且本地数据库中存在这些记录,则该记录要求插入到异地数据库中。不论插入或者删除执行是否成功,都将标志位值为true的记录删除,这样保证了本地与异地的数据库数据一致。而剩下的标志位为false的记录是冗余数据,可以留到下一校验周期中校验。校验周期可以按实际生产情况及服务器性能进行设置。
可选地,在其他实施例中,基于全局负载均衡的云存取程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述基于全局负载均衡的云存取程序在基于全局负载均衡的云存取装置中的执行过程。
例如,参照图3所示,为本发明基于全局负载均衡的云存取装置一实施例中的基于全局负载均衡的云存取程序的程序模块示意图,该实施例中,基于全局负载均衡的云存取程序可以被分割为最佳数据库节点选择模块10、重定向模块20、数据同步模块30,示例性地:
最佳数据库节点选择模块10用于:在云数据库系统中按照预设的节点选择方法选择一个客户端用户对应的最佳数据库节点;
可选地,所述预设的节点选择方法包括:
Ⅰ、在云数据库系统中的每个数据库节点处,分别存放一个大小约为20KB的测试图片test.jpg;
Ⅱ、在云数据库系统的网站主页嵌入一段测速脚本程序,当客户端用户访问所述网站主页时,测速脚本程序被触发,并开始计时;
Ⅲ、客户端用户根据测速脚本程序中的地址,从云数据库系统中的各个数据库节点中下载预存的测试图片test.jpg;
Ⅳ、生成“已测速”的cookie数据并提交下载所耗时间给云数据库系统中的全局负载均衡设备,并按照所述下载所耗时间从少到多的顺序,选择多个备选数据库节点;
Ⅴ、获取云数据库系统中各个数据库节点的运行日志,分析各个数据库节点的健康信息,包括CPU使用率、内存使用率、网络占用率;
Ⅵ、根据所述健康信息,从所述多个备选数据库节点选择健康信息最佳的数据库节点作为最佳数据库节点。
重定向模块20用于:利用基于HTTP的重定向,将客户端用户的访问重定向到该最佳数据库节点,在该最佳数据库节点上执行数据存取操作。
可选地,所述重定向包括:
Ⅰ、接收客户端用户在浏览器中输入的域名,本地域名系统对所述域名尝试解析;
Ⅱ、当所述域名系统无法解析所述域名时,逐级向上级域名系统发出解析请求;
Ⅲ、上级域名系统根据其所存储的地址记录,返回全局负载均衡设备所在的IP地址给本地域名系统;
Ⅳ、客户端用户向所述全局负载均衡设备发出TCP连接,并请求存取数据;
Ⅴ、全局负载均衡设备根据上述选择的最佳数据库节点,返回HTTP重定向的IP,即所述最佳数据库节点的地址;
Ⅵ、客户端用户到所述最佳数据库节点执行数据存取操作。
数据同步模块30用于:在云数据库系统中的各个数据库节点中执行了数据存取操作后,同步各个数据库节点之间的数据。
可选地,所述同步各个数据库节点之间的数据包括:
在云数据库系统中的各个数据库节点的连接驱动中设置SQL捕获器,其中,所述SQL捕获器仅捕获能改变数据库节点中数据记录的SQL语句,并过滤掉不改变数据库数据的语句;
将捕获到的SQL语句使用消息队列服务器发送给异地数据库节点,使消息被异地数据库节点接受后经过解析后执行数据的一致性操作。
可选地,所述同步各个数据库节点之间的数据还包括:
将云数据库系统中的主备数据库节点中的SQL操作定义成一个事务,主备数据库节点数据都更新操作成功,整个事务才可提交,否则有任意一个操作失败都将事务执行回滚操作。
上述最佳数据库节点选择模块10、重定向模块20、数据同步模块30等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有基于全局负载均衡的云存取程序,所述基于全局负载均衡的云存取程序可被一个或多个处理器执行,以实现如下操作:
在云数据库系统中按照预设的节点选择方法选择一个客户端用户对应的最佳数据库节点;
利用基于HTTP的重定向,将客户端用户的访问重定向到该最佳数据库节点,在该最佳数据库节点上执行数据存取操作;
在云数据库系统中的各个数据库节点中执行了数据存取操作后,同步各个数据库节点之间的数据。
本发明计算机可读存储介质具体实施方式与上述基于全局负载均衡的云存取装置和方法各实施例基本相同,在此不作累述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于全局负载均衡的云存取方法,其特征在于,所述方法包括:
在云数据库系统中按照预设的节点选择方法选择一个客户端用户对应的最佳数据库节点;
利用基于HTTP的重定向,将客户端用户的访问重定向到该最佳数据库节点,在该最佳数据库节点上执行数据存取操作;
在云数据库系统中的各个数据库节点中执行数据存取操作后,同步各个数据库节点之间的数据。
2.如权利要求1所述的基于全局负载均衡的云存取方法,其特征在于,所述预设的节点选择方法包括:
在云数据库系统中的每个数据库节点处,分别存放一个测试图片test.jpg;
在云数据库系统的网站主页嵌入一段测速脚本程序,当客户端用户访问所述网站主页时,测速脚本程序被触发,并开始计时;
客户端用户根据测速脚本程序中的地址,从云数据库系统中的各个数据库节点中下载预存的测试图片test.jpg;
生成已测速的cookie数据并提交下载所耗时间给云数据库系统中的全局负载均衡设备,并按照所述下载所耗时间从少到多的顺序,选择多个备选数据库节点;
获取云数据库系统中各个数据库节点的运行日志,分析各个数据库节点的健康信息,包括CPU使用率、内存使用率、网络占用率;
根据所述健康信息,从所述多个备选数据库节点选择健康信息最佳的数据库节点作为所述最佳数据库节点。
3.如权利要求1所述的基于全局负载均衡的云存取方法,其特征在于,所述重定向包括:
本地域名系统接收客户端用户输入的域名并解析所述域名;
当所述本地域名系统无法解析所述域名时,逐级向上级域名系统发出解析请求;
上级域名系统根据其所存储的地址记录,返回全局负载均衡设备所在的IP地址给本地域名系统;
客户端用户向所述全局负载均衡设备发出TCP连接,并请求存取数据;
全局负载均衡设备根据上述选择的最佳数据库节点,返回HTTP重定向的IP,即所述最佳数据库节点的地址;
客户端用户到所述最佳数据库节点执行数据存取操作。
4.如权利要求1至3中任意一项所述的基于全局负载均衡的云存取方法,其特征在于,所述同步各个数据库节点之间的数据包括数据的复制,其中所述数据的复制包括:
在云数据库系统中的各个数据库节点的连接驱动中设置SQL捕获器,其中,所述SQL捕获器用于捕获能改变数据库节点中数据记录的SQL语句,并过滤掉不改变数据库数据的语句;
将捕获到的SQL语句使用消息队列服务器发送给异地数据库节点,使消息被异地数据库节点接受并解析后执行数据的一致性操作。
5.如权利要求4述的基于全局负载均衡的云存取方法,其特征在于,所述同步各个数据库节点之间的数据还包括数据的一致性校验,其中,所述数据的一致性校验包括:
将云数据库系统中的主备数据库节点中的SQL操作定义成一个事务,当主备数据库节点数据都成功完成更新操作时,允许提交所述事务,否则有任意一个操作失败则对所述事务执行回滚操作。
6.一种基于全局负载均衡的云存取装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的基于全局负载均衡的云存取程序,所述基于全局负载均衡的云存取程序被所述处理器执行时实现如下步骤:
在云数据库系统中按照预设的节点选择方法选择一个客户端用户对应的最佳数据库节点;
利用基于HTTP的重定向,将客户端用户的访问重定向到该最佳数据库节点,在该最佳数据库节点上执行数据存取操作;
在云数据库系统中的各个数据库节点中执行了数据存取操作后,同步各个数据库节点之间的数据。
7.如权利要求6所述的基于全局负载均衡的云存取装置,其特征在于,所述预设的节点选择方法包括:
在云数据库系统中的每个数据库节点处,分别存放一个测试图片test.jpg;
在云数据库系统的网站主页嵌入一段测速脚本程序,当客户端用户访问所述网站主页时,测速脚本程序被触发,并开始计时;
客户端用户根据测速脚本程序中的地址,从云数据库系统中的各个数据库节点中下载预存的测试图片test.jpg;
生成已测速的cookie数据并提交下载所耗时间给云数据库系统中的全局负载均衡设备,并按照所述下载所耗时间从少到多的顺序,选择多个备选数据库节点;
获取云数据库系统中各个数据库节点的运行日志,分析各个数据库节点的健康信息,包括CPU使用率、内存使用率、网络占用率;
根据所述健康信息,从所述多个备选数据库节点选择健康信息最佳的数据库节点作为所述最佳数据库节点。
8.如权利要求6所述的基于全局负载均衡的云存取装置,其特征在于,所述重定向包括:
本地域名系统接收客户端用户输入的域名,并解析所述域名;
当所述本地域名系统无法解析所述域名时,逐级向上级域名系统发出解析请求;
所述上级域名系统根据其所存储的地址记录,返回全局负载均衡设备所在的IP地址给本地域名系统;
客户端用户向所述全局负载均衡设备发出TCP连接,并请求存取数据;
全局负载均衡设备根据上述选择的最佳数据库节点,返回HTTP重定向的IP,即所述最佳数据库节点的地址;
客户端用户到所述最佳数据库节点执行数据存取操作。
9.如权利要求6至8中任意一项所述的基于全局负载均衡的云存取装置,其特征在于,所述同步各个数据库节点之间的数据包括:
在云数据库系统中的各个数据库节点的连接驱动中设置SQL捕获器,其中,所述SQL捕获器用于捕获能改变数据库节点中数据记录的SQL语句,并过滤掉不改变数据库数据的语句;
将捕获到的SQL语句使用消息队列服务器发送给异地数据库节点,使消息被异地数据库节点接受并解析后执行数据的一致性操作。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于全局负载均衡的云存取程序,所述基于全局负载均衡的云存取程序可被一个或者多个处理器执行,以实现如权利要求1至5中任一项所述的基于全局负载均衡的云存取方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910380139.6A CN110225087A (zh) | 2019-05-08 | 2019-05-08 | 基于全局负载均衡的云存取方法、装置及存储介质 |
PCT/CN2019/102193 WO2020224098A1 (zh) | 2019-05-08 | 2019-08-23 | 基于全局负载均衡的云存取方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910380139.6A CN110225087A (zh) | 2019-05-08 | 2019-05-08 | 基于全局负载均衡的云存取方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110225087A true CN110225087A (zh) | 2019-09-10 |
Family
ID=67820801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910380139.6A Pending CN110225087A (zh) | 2019-05-08 | 2019-05-08 | 基于全局负载均衡的云存取方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110225087A (zh) |
WO (1) | WO2020224098A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110691124A (zh) * | 2019-09-24 | 2020-01-14 | 华润网络(深圳)有限公司 | 一种异地多活架构下数据处理方法及系统 |
CN111159141A (zh) * | 2020-01-02 | 2020-05-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种去中心化的分布式数据同步方法、分布式节点及系统 |
CN115866047A (zh) * | 2023-01-31 | 2023-03-28 | 华控清交信息科技(北京)有限公司 | 一种多方安全计算中的数据重定向方法、装置及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115470303B (zh) * | 2022-11-14 | 2023-03-03 | 苏州浪潮智能科技有限公司 | 一种数据库访问方法、装置、系统、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104270291A (zh) * | 2014-10-22 | 2015-01-07 | 网宿科技股份有限公司 | Cdn网络质量监控方法 |
CN104301415A (zh) * | 2014-10-21 | 2015-01-21 | 无锡云捷科技有限公司 | 一种基于http重定向的全局负载均衡方法 |
CN104572851A (zh) * | 2014-12-16 | 2015-04-29 | 北京百度网讯科技有限公司 | 获取推荐信息的方法和装置 |
CN108108431A (zh) * | 2017-12-19 | 2018-06-01 | 中国民航信息网络股份有限公司 | 数据同步方法和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008018969A1 (en) * | 2006-08-04 | 2008-02-14 | Parallel Computers Technology, Inc. | Apparatus and method of optimizing database clustering with zero transaction loss |
CN102510407A (zh) * | 2011-11-22 | 2012-06-20 | 沈文策 | 一种对博客进行读、写操作的方法及系统 |
CN104468852A (zh) * | 2013-09-18 | 2015-03-25 | 腾讯科技(北京)有限公司 | 客户端选择ip链接地址的方法、装置及系统 |
CN104468777B (zh) * | 2014-12-05 | 2018-01-23 | 北京奇虎科技有限公司 | 数据操作方法和装置 |
CN104735088B (zh) * | 2015-04-16 | 2018-09-11 | 北京金山安全软件有限公司 | 一种cdn网络中服务器节点调整方法及装置 |
CN106991190A (zh) * | 2017-04-11 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种数据库自动创建子数据库系统 |
-
2019
- 2019-05-08 CN CN201910380139.6A patent/CN110225087A/zh active Pending
- 2019-08-23 WO PCT/CN2019/102193 patent/WO2020224098A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301415A (zh) * | 2014-10-21 | 2015-01-21 | 无锡云捷科技有限公司 | 一种基于http重定向的全局负载均衡方法 |
CN104270291A (zh) * | 2014-10-22 | 2015-01-07 | 网宿科技股份有限公司 | Cdn网络质量监控方法 |
CN104572851A (zh) * | 2014-12-16 | 2015-04-29 | 北京百度网讯科技有限公司 | 获取推荐信息的方法和装置 |
CN108108431A (zh) * | 2017-12-19 | 2018-06-01 | 中国民航信息网络股份有限公司 | 数据同步方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110691124A (zh) * | 2019-09-24 | 2020-01-14 | 华润网络(深圳)有限公司 | 一种异地多活架构下数据处理方法及系统 |
CN110691124B (zh) * | 2019-09-24 | 2020-11-24 | 华润网络(深圳)有限公司 | 一种异地多活架构下数据处理方法及系统 |
CN111159141A (zh) * | 2020-01-02 | 2020-05-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种去中心化的分布式数据同步方法、分布式节点及系统 |
CN115866047A (zh) * | 2023-01-31 | 2023-03-28 | 华控清交信息科技(北京)有限公司 | 一种多方安全计算中的数据重定向方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020224098A1 (zh) | 2020-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107895009B (zh) | 一种基于分布式的互联网数据采集方法及系统 | |
CN110225087A (zh) | 基于全局负载均衡的云存取方法、装置及存储介质 | |
CN108958927A (zh) | 容器应用的部署方法、装置、计算机设备和存储介质 | |
US10257110B2 (en) | Using a template to update a stack of resources | |
US8997061B1 (en) | Test scheduling based on historical test information | |
CN110221901A (zh) | 容器资源创建方法、装置、设备及计算机可读存储介质 | |
US8966446B1 (en) | Systems and methods of live experimentation on content provided by a web site | |
CN103036871B (zh) | 浏览器应用插件支持装置和方法 | |
JP2018514846A (ja) | ウェブページのアクセス方法、装置、デバイス及びプログラム | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和系统 | |
CN111010364B (zh) | 用于基于离线对象的存储和模拟rest响应的系统 | |
CN102937897B (zh) | 异步数据绑定 | |
CN111352836A (zh) | 一种压力测试方法及相关装置 | |
CN110543354A (zh) | 任务调度方法、装置、设备及存储介质 | |
Sivakumar et al. | Nutshell: Scalable whittled proxy execution for low-latency web over cellular networks | |
US9201897B1 (en) | Global data storage combining multiple back-end storage devices | |
CN114422343A (zh) | 业务配置方法、设备、系统及计算机可读存储介质 | |
TWI553493B (zh) | 搜尋軟體應用程式之方法及其系統 | |
CN109977677A (zh) | 漏洞信息收集方法、装置、设备及可读存储介质 | |
CN105446981B (zh) | 站点地图生成方法、访问方法及装置 | |
CN113485927A (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN111026945B (zh) | 多平台爬虫调度方法、装置和存储介质 | |
CN113760983A (zh) | 数据处理方法、系统及非瞬时性计算机可读存储介质 | |
CN116974874A (zh) | 数据库的测试方法、装置、电子设备及可读存储介质 | |
CN112463808A (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 |