面向海量高并发数据库中间件的研究与应用

目录

摘要 ..................................................................................................................................................... I I ABSTRACT ............................................................................................................................................IV 第1章绪论 . (1)

1.1研究背景与意义 (1)

1.2研究内容 (2)

1.3论文组织结构 (3)

1.4本章小结 (3)

第2章相关技术介绍与分析 (5)

2.1数据库集群技术 (5)

2.2主从复制与读写分离 (7)

2.2.1主从复制 (7)

2.2.2读写分离 (8)

2.3Brewer定理 (8)

2.4数据库切片 (9)

2.4.1垂直切片 (9)

2.4.2水平切片 (9)

2.4.3综合分片策略 (10)

2.5常见数据库集群技术对比 (11)

2.6本章小结 (11)

第3章问题分析及定义 (12)

3.1汇金电子商务系统介绍 (12)

3.2非功能性需求 (13)

3.3存在的问题分析 (15)

3.4本章小结 (17)

第4章MyCatPlus的设计与实现 (18)

4.1MyCat数据库集群中间件 (18)

4.2MyCatPlus整体架构介绍 (20)

4.3负载均衡模块设计与实现 (22)

4.4读写分离的应用 (25)

4.5集群切片的设计与实现 (31)

4.5.1垂直切分策略 (31)

VI

4.5.2水平切分策略 (32)

4.5.3切片的实现 (39)

4.6缓存方案 (40)

4.7强一致性的应用与优化 (43)

4.8事务机制的设计与实现 (48)

4.9本章小结 (51)

第5章实验验证与分析 (52)

5.1实验环境 (52)

5.2测试负载 (52)

5.3测试结果及分析 (53)

5.4本章小结 (57)

第6章全文总结与展望 (58)

6.1总结 (58)

6.2后续研究工作 (58)

参考文献 (60)

攻读硕士学位期间已发表或录用的论文 (64)

VII

图录

图2-1 Share-Disk数据库集群架构 (5)

图2-2Share-Nothing数据库集群架构图 (6)

图2-3 主从节点之间的同步过程示意图 (8)

图2-4 垂直分片原理图 (10)

图3-1 汇金百货电子商务系统业务流程图 (12)

图3-2 汇金百货电子商务系统的E-R图 (13)

图3-3 MySQL Cluster自动切片示意图 (15)

图3-4 MySQL Cluster的冗余机制 (16)

图3-5 MySQL Cluster中三个数据节点三个分区的数据分布图 (16)

图4-1 MyCat的架构图 (18)

图4-2 逻辑库到物理库的映射关系示意图 (20)

图4-3 MyCatPlus的架构图 (21)

图4-4 没有负载均衡的集群架构 (22)

图4-5 有负载均衡的集群架构 (23)

图4-6 简单的读写分离模型 (26)

图4-7 多层级Master-Slave架构图 (28)

图4-8 延迟时间与slave数量的关系图 (29)

图4-9 pxc集群架构图 (30)

图4-10 MyCatPlus中的垂直分片模型图 (31)

图4-11 物理切分示意图 (33)

图4-12分片算法类的类图 (34)

图4-13 父子表切分策略模型图 (37)

图4-14 SQL执行的顺序图 (41)

图4-15 非主键字段作为分片字段的架构图 (42)

图4-16缓存使用情况 (42)

图4-17 MyCatPlus中2PC执行的第一步 (49)

图4-18 MyCatPlus中2PC执行的第二步 (50)

图4-19 MyCatPlus中2PC执行的第三步 (50)

图4-20 MyCatPlus中2PC执行的第四步 (51)

VIII

图5-1 50万数据写入时间对比 (53)

图5-2 100万数据写入时间对比 (54)

图5-3 QPS变化情况 (54)

图5-4 500万读写数据的QPS测试 (55)

图5-5 1000万读写数据的QPS测试 (55)

图5-6 500万数据量下连接数与QPS关系 (56)

图5-7 1000万数据量下连接数与QPS关系 (56)

IX

第1章绪论

1.1研究背景与意义

自二十世纪九十年代末期以来,电子商务已经得到了极其迅速的发展,与此同时人们的生产生活方式也已经被颠覆,越来越多的消费者都参与到电子商务市场中,成为买家或者卖家。2013年,中国电子商务市场交易规模达到9.9万亿,同比增长21.3%,2014年淘宝双十一一天的交易额就高达600亿,同比增长58.6%。这些快速增长的数据,以及庞大的用户基数,品种以及数量都极多的商品,对于任何一个电子商务网站的数据库架构而言都是极大的考验,传统的提升单点硬件性能的做法早已不适合快速发展的电子商务背景了。所以如何使得电子商务网站能应对数据的快速增长,用户的高并发访问,高可用性[1],高可扩展性,并且又能保留传统数据库的易于管理和使用的特点是当今各大电子商务网站的核心技术问题。

数据库集群用以提供比单个数据库更可靠,更易扩展的统一服务型平台,在典型的客户端,服务端架构中,数据库集群和单个数据库对于客户端而言没有任何区别,这也使得业务逻辑层的开发更容易进行,数据层与业务逻辑层的耦合性大大降低,而数据库集群的扩展性非常强,在数据量快速变大的过程中,如果当前的集群不能满足需求了,则可以通过添加新的数据库节点到集群中,并且这个扩展过程不会中断原有的服务。虽然集群对客户端提供了类似于传统单点数据库的统一接口,如果和客户端对接的服务器只有一台,其可靠性还是没有提高,所以必须提供多于一台的对外服务器进行热备份,在当前机器发生故障之后能够迅速切换到备份机器。

电子商务中的理想数据库集群应该满足以下特点:

1)如果需要更大的存储空间或者更高的处理速度,我们只需要简单地往集群中

增加节点。这样可以大大减小硬件成本支出。

2)不管什么时候都有多个随时可用的实时服务,作为容灾保障,而且这些服务

之间最好是异地的。这样不仅仅可以让系统的可用性变得更强,还能在响应时间上获得增益效果。

3)访问权限的控制,不仅仅有密码保护,在企业内部要控制对数据库的非法访

问。

1

相关文档
最新文档