论文部分内容阅读
计算机网络的发展为分布式数据处理提供了可能性。然而分布式概念的引入也为数据库的管理和使用带来了新的挑战。将传统的关系型数据库组建成一个分布式数据库集群,并像传统关系型数据库一样提供服务是一个很大的挑战。本文重点研究了怎样搭建一个数据库集群,并使得此集群同时满足高性能、高可用性、高可扩展性的要求。对于一个分布式数据库集群而言,Percona XtraDB Cluster提供了一致性和可用性,MySQL Replication提供了可用性和分区容忍性,MyCat数据库中间件则可以完成对数据的切片和SQL的路由转发。一个电子商务系统中需要在不同的应用场景中分别满足一致性、可用性、分区容忍性。本文提出了基于MyCat改进的数据库中间件MyCat Plus,利用MyCatPlus整合了整个集群并对外提供了统一的服务接口。MyCatPlus提供了针对SQL路由节点的负载均衡,并整合了MySQL Proxy的读写分离,以满足读多写少的场景。针对数据库的切片,本文分析了汇金百货电子商务系统中的各种应用场景的特点,然后在MyCatPlus中实现了新的分片策略和缓存策略。对于需要高可用性的场景,MyCatPlus通过Percona XtraDB Cluster来满足需求。由于数据被切分到多个数据节点上,所以必须要保证事务性不会被破坏,在MyCatPlus中利用两阶段提交实现了这一要求。本文基于MyCat中间件设计并实现了更完善的MyCatPlus数据库中间件。在实验中基于汇金百货电子商务系统,以MyCatPlus为基础测试了实际运行效果,并与MySQL Cluster做了对比测试。在对比中,MyCatPlus体现了较大的性能优势和较快的灾难恢复速度。