MySQL数据库集群处理方法及其处理系统与流程

文档序号:12694632阅读:288来源:国知局
MySQL数据库集群处理方法及其处理系统与流程

本发明属于通信领域,特别是涉及一种MySQL数据库集群处理方法及MySQL数据库集群处理系统。



背景技术:

随着大数据时代的到来,数据的规模的不断增长,数据查询的需求越来越频繁。用户对数据查询速度及数据查询服务的不间断的要求越来越强烈,不希望访问查询数据的时候等待时间过长,甚至看到“查询超时”或者“数据库繁忙”的情况。单一的数据库是无法支撑因数据快速增长和查询量快速增长而带来的存储和计算强度的相应快速增大。在这种情况下,若购买新的价格更贵,性能更好的数据库服务器做升级而将现有数据库服务器利淘汰,则将必是一种对现有硬件资源的极度浪费,单台数据库服务器的性能无论多强大,也必然是无法满足不断的数据量和查询量的提升,硬件的一次次升级成本和一次次费用投入也将是永无止境的资源浪费,造成原有数据库扩展成本太高,甚至演变成不可扩展的系统,需要推倒重来的困境。

专利文献CN102594697 A公开一种负载均衡方法,所述负载均衡方法适用于控制和转发分离的开放流网络,包括:接收第一开放流交换机发送来的与开放流控制器建立连接的请求消息;从连接信息数据库中选择与开放流交换机建立连接的数量最少的开放流控制器作为第一开放流控制器,所述连接信息数据库保存至少两个开放流控制器标识,并且保存所述至少两个开放流控制器标识对应的开放流控制器与开放流交换机建立连接的数量;将所述建立连接的请求消息转发至所述第一开放流控制器;接收更新消息,更新所述连接信息数据库中所述第一开放流控制器与开放流交换机建立连接的数量。该专利在开放流网络中存在多个开放流控制器的情况下,能够实现开放流控制器之间负载均衡,但该专利无法针对数据写入,更新,删除请求和占绝大多数访问的查询请求进行分别处理,不能解决数据查询能力的可扩展性,无法防止自身的单点故障导致整个集群无法提供服务,不具备高可用性,扩展灵活性,低扩展成本。

专利文献CN104036025 A公开的一种基于分布式的海量日志采集系统通过在目标主机上安装Agent进程,对目标主机的文本、应用程序、数据库等日志信息进行有选择地定向推送到服务器集群的统一访问接口,服务器端采用了分布式缓存与实时流处理框架技术;该系统包括数据源层、分布式缓存层、分布式存储与计算层、业务处理层、可视化展示层和统一调度与管理模块;数据源层,由数据采集组件(生产者)模块对各个节点上面的文本、应用程序、数据库等进行采集,推送到分布式缓存层;分布式缓存层,由LVS对各个节点的消息队列组件进行负载均衡,提供一个统一的接口来接收并写入数据源节点推送过来的数据,等待分布式存储与计算层的数据采集组件(消费者)来读取;分布式存储与计算层,提供存储与计算的功能,包括数据采集组件(消费者)模块、离线计算模块、实时计算模块、分布式存储和搜索引擎;其中,数据采集组件(消费者)模块负责对分布式缓存层进行数据读取;离线计算模块由Hadoop及其生态系统组成;实时计算模块由Storm组成;业务处理层,提供统计分析和数据挖掘的功能与服务,由上层进行调用;可视化展示层,提供普通查询、全文检索、报表展示、导入导出等功能;统一调度与管理模块,对上述5层进行统一的调度与管理,基于工作流,自动化处理。该专利使用了Storm实时流处理框架技术,因此,可以近实时地对Kafka分布式缓存中的消息进行处理并分类,但该专利结构步骤复杂且无法针对数据写入,更新,删除请求和占绝大多数访问的查询请求进行分别处理,不能解决数据查询能力的可扩展性,无法防止自身的单点故障导致整个集群无法提供服务,不具备高可用性,扩展灵活性,低扩展成本。

专利文献CN1560742 A公开的一种基于改进的linux虚拟服务器架构的开放式网络计算平台,该计算平台包括基于改进的linux虚拟服务器架构的服务器系统(20)和贡献空闲计算资源的志愿机系统(21);服务器系统(20)包括前端机(6)和m台昊宇服务器(7.1,……,7.m),m为正整数;志愿机系统(21)包括n台昊宇志愿机(8.1,……,8.n),n为正整数;前端机(6)包括负载均衡模块(18)和前端机备份模块(19);其中,负载均衡模块(18)当昊宇志愿机将请求发送给前端机时,将请求转发到昊宇服务器的调度模块(13)上;前端机备份模块(19)根据自适应策略建立并维护昊宇服务器之间的备份关系向量表,并将该备份关系向量表发送给服务器备份模块(12);昊宇服务器(7)包括存储系统(9)、应用模块(10)、监控模块(11)、服务器备份模块(12)和调度模块(13),其中,存储系统包括数据库系统和文件系统;应用模块(10)用于接收客户提交的应用,并将应用划分成计算量小的任务,再通过命令将应用信息和任务信息存入数据库系统,应用的二进制代码和任务的数据文件存入文件系统;监控模块(11)用于读取数据库系统中的信息,处理后加以显示,以监控昊宇服务器的运转状况;服务器备份模块(12)根据备份关系向量表,将存储系统中的数据库信息和文件信息备份到对应的服务器上;调度模块(13)当昊宇志愿机中的通信模块(16)请求计算任务时,根据应用模块(10)写入数据库系统中的任务信息,统一调度任务,通过昊宇志愿机中的通信模块(16)分配给志愿机执行;还用于在通信模块(16)返回计算结果以后,将结果文件存放到文件系统中,并修改数据库系统中的任务信息;昊宇志愿机(8)包括志愿者接口模块(14)、控制模块(15)、通信模块(16)和计算模块(17);其中,志愿者接口模块(14)用于实时监听并执行志愿者发出的命令,根据命令修改配置文件中相应的项;控制模块(15)循环根据配置文件的设置,当启动计算的条件满足时,启动通信模块(16),向昊宇服务器请求计算任务,当调度模块(13)返回计算任务后,启动计算模块(17),以最低优先级计算任务,在计算过程中通信模块(16)周期性地向调度模块(13)发送“alive”信息,并将计算结果通过通信模块(16)返回给调度模块(13)。该专利具有LVS架构的一切优良特性,但该专利结构步骤复杂且无法针对数据写入,更新,删除请求和占绝大多数访问的查询请求进行分别处理,无法防止自身的单点故障导致整个集群无法提供服务,不具备扩展灵活性和低扩展成本。



技术实现要素:

关于本发明所要解决的技术问题,其具体需求如下:针对数据写入,更新,删除请求和占绝大多数访问的查询请求进行分别处理,解决数据查询能力的可扩展性,防止自身的单点故障导致整个集群无法提供服务,具备高可用性,扩展灵活性,低扩展成本。

在背景技术部分中公开的上述信息仅仅用于增强对本发明背景的理解,因此可能包含不构成在本国中本领域普通技术人员公知的现有技术的信息。

本发明的目的是通过以下技术方案予以实现。

根据本发明的一方面,一种MySQL数据库集群处理方法包括以下步骤:

在第一步骤中,MySQL数据库集群包括一个用于写入的主MySQL数据库和多个用于查询的从MySQL数据库,用户通过web访问所述MySQL数据库集群。

在第二步骤中,当web访问为写入、更新或删除请求时,所述主MySQL数据库响应该请求,当web访问为查询请求时,包括主LVS和从LVS的负载均衡器接收到查询请求后,虚拟IP地址监控主LVS和从LVS是否可用。

在第三步骤中,Keepalived模块监测从MySQL数据库对应的数据库查询服务器是否可用,自动把存在问题的数据库查询服务器踢出集群,并按照预定的权重分配查询任务。

在第四步骤中,接收所述查询任务的数据库查询服务器查询并将查询结果返回给用户。

优选地,在第三步骤中,Keepalived模块监测主LVS是否可用,然后Keepalived模块中的调度器根据各个数据库查询服务器的负载情况动态地选择一台数据库查询服务器,将请求报文的数据帧的目标MAC地址改为所述数据库查询服务器的MAC地址。

优选地,在第三步骤中,所述数据库查询服务器接收到请求时,目标IP为所述虚拟IP地址,然后所述数据库查询服务器响应请求,之后根据其路由信息将响应的数据包发送回给用户,并且源IP地址为虚拟IP地址。

优选地,在第二步骤中,负载均衡器为DNS混合负载均衡器、VS/TUN或VS/DR。

优选地,在第三步骤中,当存在问题的数据库查询服务器工作正常后,Keepalived模块自动将其加入到MySQL数据库集群。

优选地,多个用于查询的从MySQL数据库实时同步所述主MySQL数据库。

优选地,在第三步骤中,所述数据库查询服务器为云端服务器。

根据本发明的另一方面,一种实施所述的MySQL数据库集群处理方法的MySQL数据库集群处理系统包括服务器群、负载均衡器和Keepalived模块,所述服务器群包括用于承载主MySQL数据库的主服务器和多个用于承载从MySQL数据库的数据库查询服务器,负载均衡器包括主LVS和从LVS,Keepalived模块中设有调度器。

优选地,处理系统包括用于执行命令的处理器、用于通信的通信总线和存储命令的存储器。

优选地,所述处理器是通用处理器、数字信号处理器、专用集成电路ASIC,现场可编程门阵列FPGA、模拟电路或数字电路,所述存储器包括一个或多个只读存储器ROM、随机存取存储器RAM、快闪存储器或电子可擦除可编程只读存储器EEPROM。

上述说明仅是本发明技术方案的概述,为了能够使得本发明的技术手段更加清楚明白,达到本领域技术人员可依照说明书的内容予以实施的程度,并且为了能够让本发明的上述和其它目的、特征和优点能够更明显易懂,下面以本发明的具体实施方式进行举例说明。

附图说明

通过阅读下文优选的具体实施方式中的详细描述,本发明各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。说明书附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。而且在整个附图中,用相同的附图标记表示相同的部件。

在附图中:

图1是根据本发明一个实施例的MySQL数据库集群处理方法的步骤示意图;

图2是根据本发明一个实施例的实施MySQL数据库集群处理方法的逻辑流程图;

图3是根据本发明一个实施例的实施MySQL数据库集群处理方法的工作流程图。

图4是根据本发明一个实施例的实施MySQL数据库集群处理方法的MySQL数据库集群处理系统的结构示意图。

图5是根据本发明一个实施例的实施MySQL数据库集群处理方法的MySQL数据库集群处理系统的网络拓扑图。

以下结合附图和实施例对本发明作进一步的解释。

具体实施方式

下面将参照附图更详细地描述本发明的具体实施例。虽然附图中显示了本发明的具体实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

需要说明的是,在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可以理解,技术人员可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名词的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”或“包括”为一开放式用语,故应解释成“包含但不限定于”。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明书的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。

为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个附图并不构成对本发明实施例的限定。

图1为本发明的一个实施例的MySQL数据库集群处理方法的步骤示意图,本发明实施例将结合图1进行具体说明。

如图1所示,本发明的一个实施例提供了一种MySQL数据库集群处理方法,MySQL数据库集群处理方法包括以下步骤:

在第一步骤S1中,MySQL数据库集群包括一个用于写入的主MySQL数据库和多个用于查询的从MySQL数据库,用户通过web访问所述MySQL数据库集群。

在第二步骤S2中,当web访问为写入、更新或删除请求时,所述主MySQL数据库响应该请求,当web访问为查询请求时,包括主LVS和从LVS的负载均衡器LVS接收到查询请求后,虚拟IP地址VIP监控主LVS和从LVS是否可用。

在第三步骤S3中,Keepalived模块监测从MySQL数据库对应的数据库查询服务器是否可用,自动把存在问题的数据库查询服务器踢出集群,并按照预定的权重分配查询任务。

在第四步骤S4中,接收所述查询任务的数据库查询服务器查询并将查询结果返回给用户。

在一个实施例中,本发明的MySQL数据库集群处理方法以实现Linux虚拟服务器LVS+keeplived负载均衡数据mysql运维,根据web请求触发数据查询,分发给后端的数据库mysql查询服务器集群处理数据查询任务。主从数据库mysql查询LVS通过keepalived相互作健康监测,接收对应的查询请求,按keepalived的权重设置分配查询任务到后端的数据库mysql查询集群内对应的服务器。通过keepalived对后端的数据库mysql查询服务器的状态,如果有一台数据库mysql查询服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从LVS系统中踢除,同时使用其他服务器代替该服务器的工作,当该数据库mysql查询服务器恢复正常后,Keepalived自动将该数据库mysql查询服务器自动加入到该LVS系统中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是下线修复故障的服务器。MySQL是一个关系型数据库管理系统,MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL可采用双授权政策,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其性能卓越,搭配PHP和Apache,Nginx可组成良好的开发环境。

图2是根据本发明一个实施例的实施MySQL数据库集群处理方法的逻辑流程图,步骤1:用户通过web访问触发数据库查询请求。步骤2:负载均衡的VIP会相互监控查询库的主LVS和查询库的从LVS是否可用。步骤3:无论是查询库的主LVS还是查询库的从LVS接到用户的查询请求后,都会对后端的数据库mysql查询服务器做健康监测,自动把有问题的数据库mysql查询服务器踢出集群,并按照keepalived设置的权重分配查询任务。步骤4:数据库mysql查询服务器把查询结果返回给用户。

本发明的优选的实施方式中,在第三步骤S3中,Keepalived模块监测主LVS是否可用,然后Keepalived模块中的调度器根据各个数据库查询服务器的负载情况动态地选择一台数据库查询服务器,将请求报文的数据帧的目标MAC地址改为所述数据库查询服务器的MAC地址。

本发明的优选的实施方式中,在第三步骤S3中,所述数据库查询服务器接收到请求时,目标IP为所述虚拟IP地址VIP,然后所述数据库查询服务器响应请求,之后根据其路由信息将响应的数据包发送回给用户,并且源IP地址为虚拟IP地址VIP。

本发明的优选的实施方式中,在第二步骤S2中,负载均衡器LVS为DNS混合负载均衡器、VS/TUN或VS/DR。

本发明的优选的实施方式中,在第三步骤S3中,当存在问题的数据库查询服务器工作正常后,Keepalived模块自动将其加入到MySQL数据库集群。

本发明的优选的实施方式中,多个用于查询的从MySQL数据库实时同步所述主MySQL数据库。

本发明的优选的实施方式中,在第三步骤S3中,所述数据库查询服务器为云端服务器。

图3是根据本发明一个实施例的实施MySQL数据库集群处理方法的工作流程图。如图3所示,在一个实施例中,将报文直接路由给目标真实服务器。在DR模式中,首先利用Keepalived模块2的健康监测机制监测主的Lvs是否健康作出Lvs的高可用性,然后通过keepalived调度器根据各个真实服务器的负载情况,连接数多少等,动态地选择一台服务器,不修改目标IP地址和目标端口,也不封装IP报文,而是将请求报文的数据帧的目标MAC地址改为真实服务器的MAC地址。然后再将修改的数据帧在服务器组的局域网上发送。因为数据帧的MAC地址是真实服务器的MAC地址,并且又在同一个局域网。那么根据局域网的通讯原理,真实复位是一定能够收到由LVS+KEEPALIVED发出的数据包。真实服务器接收到请求数据包的时候,解开IP包头查看到的目标IP是VIP,,此时只有自己的IP符合目标IP才会接收进来,所以我们需要在本地的回环借口上面配置VIP。另:由于网络接口都会进行ARP广播响应,但集群的其他机器都有这个VIP的lo接口,都响应就会冲突。所以我们需要把真实服务器的lo接口的ARP响应关闭掉。然后真实服务器做成请求响应,之后根据自己的路由信息将这个响应数据包发送回给客户,并且源IP地址还是VIP。

数据流的整个流程如下:

1、通过在调度器LVS+KEEPALIVED上修改数据包的目的MAC地址实现转发。注意源地址仍然是CIP,目的地址仍然是VIP地址。

2、请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LVS+KEEPALIVED,因此并发访问量大时使用效率很高。

3、因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LVS+KEEPALIVED只能在一个局域网里面。

4、RS主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。

5、RS节点的默认网关不需要配置成LVS+KEEPALIVED,而是直接配置为上级路由的网关,能让RS直接出网就可以。

6、由于DR模式的调度器仅做MAC地址的改写,所以调度器LVS+KEEPALIVED就不能改写目标端口,那么RS服务器就得使用和VIP相同的端口提供服务。

图4是根据本发明一个实施例的实施MySQL数据库集群处理方法的MySQL数据库集群处理系统的结构示意图。实施所述的MySQL数据库集群处理方法的MySQL数据库集群处理系统包括服务器群1、负载均衡器LVS和Keepalived模块2,所述服务器群1包括用于承载主MySQL数据库的主服务器3和多个用于承载从MySQL数据库的数据库查询服务器4,负载均衡器LVS包括主LVS5和从LVS6,Keepalived模块2中设有调度器7。

本发明的优选的实施方式中,处理系统包括用于执行命令的处理器、用于通信的通信总线和存储命令的存储器。

本发明的优选的实施方式中,Keepalived模块主要使用VRRP协议来保存链路的高可用性。而VRRP(Virtual Router Redundancy Protocol)协议本身是用于实现路由器冗余的协议。

本发明的优选的实施方式中,所述处理器是通用处理器、数字信号处理器、专用集成电路ASIC,现场可编程门阵列FPGA、模拟电路或数字电路,所述存储器包括一个或多个只读存储器ROM、随机存取存储器RAM、快闪存储器或电子可擦除可编程只读存储器EEPROM。

为了进一步理解本发明,图5是根据本发明一个实施例的实施MySQL数据库集群处理方法的MySQL数据库集群处理系统的网络拓扑图。如图5所示,用户发出查询请求,负载均衡层包括负载均衡器LVS和Keepalived模块2,负载均衡层还可以包括备份的负载均衡器LVS和Keepalived模块2,负载均衡层通过交换机将查询请求连接到数据库查询层,数据库查询层可包括多个从MySQL数据库。

本发明首先解决了多台mysql数据库的数据写入,更新,删除,查询和数据的一致性问题。其次解决了数据查询能力的可扩展性,同时为了防止LVS负载均衡器自身的单点故障导致整个“mysql-查询”集群无法提供服务,因此还得利用Keepalived模块实现LVS负载均衡器的高可用性,负载均衡能够充分的利用现有的网络结构,在网络结构的基础之上扩展“mysql-查询”集群的带宽和网络设备、加强数据查询的可用性及快速性、提高数据查询处理能力,从而提供了一种廉价有效透明的方法,使mysql-查询集群具有高可用性,扩展灵活性,扩展成本低等特点。

尽管以上结合附图对本发明的实施方案进行了描述,但本发明并不局限于上述的具体实施方案和应用领域,上述的具体实施方案仅仅是示意性的、指导性的,而不是限制性的。本领域的普通技术人员在本说明书的启示下和在不脱离本发明权利要求所保护的范围的情况下,还可以做出很多种的形式,这些均属于本发明保护之列。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1