论文部分内容阅读
随着互联网技术的高速发展以及其高度写比特性,数据库集群方案已是处理数据的首选。由于技术壁垒以及经济原因,商用数据库集群方案往往对于中小型企业并不友好。而开源的MySQL以其简单易用、经济方便的特性在互联网广泛应用,并且能够保证良好的高可用性和高扩展性。但MySQL集群本身方案较多,也存在一些诸如维护困难、复制延迟、缺少中间件等问题。因此,对于MySQL集群的研究是十分必要的。本文分析了三种主流的高可用MySQL数据库集群技术,针对基于MySQL复制技术的集群进行了研究改进,最终设计实现了一种基于MySQL复制技术的高可用的数据库集群模型MRBCHA.该模型主要研究内容如下:1、提出了一种MySQL复制技术的改进方法和数据分片技术。针对复制的延迟问题,进行了三种改进:不重复写操作中代价较高部分、复制之外并行写入和预取缓存。分片技术采用了以ID特征为依据的策略,本文采用相同的前缀这一ID特征进行分片,相较传统的取模哈希更易于数据的扩展。2、提出了一种改进的读写分离算法,并利用MySQL Proxy的lua脚本对客户端的读写请求实现了分离。该算法对客户请求的进行了代理,通过SQL语句的具体分析,并设定了dbname(数据库名)参数,根据dbname的数量对读写请求进行了分配。3、提出了一种基于概率分布的动态反馈负载均衡算法,提供了良好的负载平衡和扩展性,将集群的单点节点故障的影响大大减小。该算法由子节点首先计算自身剩余负载变化率并与设定的阀值相比较,通过动态反馈机制上报到主节点,主节点按照随机概率的方案对请求进行分配。4、最后基于以上研究内容搭建了MySQL数据库集群——MRBCHA,实现了该模型。该集群包括了相关的读写分离、负载均衡和主从复制模块,实现了有效地读写分离,负载均衡和数据复制。同时通过了测试,并达到了良好的效果。