暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
3.mysql架构设计篇(12~18).pdf
239
108页
0次
2021-02-21
50墨值下载
12
12
12
12 MySQL
MySQL
MySQL
MySQL 可扩展设计的基本原则
前言:
随着信息量的飞速增加, 硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的
求了。 此时, 我们如何来解决系统对性能的要求?只有一个办法, 那就是通过改造系统的
构体系, 提升系统的扩展能力, 通过组合多个低处理能力的硬件设备来达到一个高处理能
的系统, 也就是说,我们必须进行可扩展设计。可扩展设计是一个非常复杂的系统工程,
涉及的各个方面非常的广泛 术也较为复杂, 可能还会带来很多其他方面的问题。
我们如何设计 管遇到哪些问题, 有些原则我们还是必须确保的。 本章就将可扩展设
程中需要确保的原则做一个简单的介绍
12.1 什么是可扩展
什么是可扩展
什么是可扩展
什么是可扩展
在讨论可扩展性之前, 可能很多朋有会问: 常听人说起某某网站某某系统在可扩展性
面设计的如何如何好, 架构如何如何出色, 到底什么是扩展?怎样算是可扩展?什么又是
扩展性呢?其实也就是大家常听到的 Scale Scalable Scalability 这三个词。
从数据库的角度来说, Scale (扩展)就是让我们的数据库能够提供更强的服务能力,
更强的处理能力。而 Scalable (可扩展)则是表明数据库系统在通过相应升级(包括增加
单机处理能力或者增加服务器数量) 之后能够达到提供更强处理能力 理论能上来说,
Scalable
Scalability (扩展性)则是指一个数据库系统通过相应的升级之后所带来处理能力提升的
难以程度。 虽然理论上任何系统都可以通过相应的升级来达到处理能力的提升, 但是不同
系统提升相 同的处理能力所需要的升级成本 (资金和人力) 是不一样的, 这也就是我们所
的各个数据库应用系统的 Scalability 存在很大的差异。
在这里, 我所说的不同数据库应用系统并不是指数据库软件本身的不同 (虽然数据库
件不同也会存 Scalability 的差异) , 而是指相同数据库软件的不同应用架构设计,
正是本章以及后面几张将会所重点分析的内容。
首先, 我们需要清楚一个数据库据系统的扩展性实际上是主要体现在两个方面, 一个
横向扩展,另一个则是纵向扩展,也就是我们常说的 Scale Out Scale Up
Scale Out 就是指横向的扩展, 向外扩展 也就是通过增加处理节点的方式来提高整
处理能力,说的更实际一点就是通过增加机器来增加整体的处理能力
Scale Up 则是指纵向的扩展,向上扩展,也就是通过增加当前处理节点的处理能力来
提高整体的处理能力,白了就是通过升级现有服务器的配置,如增加内存,增加 CPU
加存储系统的硬件配置,或者是直接更换为处理能力更强的服务器和更为高端的存储系统。
通过比较两种 Scale 方式,我们很容易看出各自的优缺点。
Scale Out 优点:
1. 成本低,很容易通过价格低廉的 PC Server 搭建出一个处理能力非常强大的
计算集群;
2. 不太容易遇到瓶颈,因为很容易通过添加主机来增加处理能力;
3. 单个节点故障对系统整体影响较小; 也存在缺点, 更多的计算节点, 大部
候都是服务器主机, 这自然会带来整个系统维护复杂性的提高, 在某些方面肯定
增加维护成本 而且对应用系统的架构要求也会比 Scale Up 更高, 需要集群管
软件的配合。
Scale Out 缺点:
1. 处理节点多,造成系统架构整体复杂度提高,应用程序复杂度提高;
2. 集群维护难以程度更高,维护成本更大;
Scale Up 优点:
1. 处理节点少,维护相对简单;
2. 所有数据都集中在一起,应用系统架构简单,开发相对容易
Scale Up 缺点
1. 高端设备成本高,且竞争少,容易受到厂家限制;
2. 受到硬件设备发展速度限制, 单台主机的处理能力总是有极限的, 容易遇到
终无法解决的性能瓶颈;
3. 设备和数据集中,发生故障后的影响较大;
从短期来看, Scale Up 会有更大的优势,因为可以简化运维成本,简化系统架构和应
用系统的开发,对技术方面的要求要会更简单一些。
但是, 从长远影响来看, Scale Out 会有更大的优势, 且也是系统达到一个规模
的必然趋势。 为不管怎样 台机器的处理能力总是会受到硬件技术的限制, 而硬件技
的发展速度总是有限的, 很多时候很难跟得上业务发展的速度。 而且越是高处理能力的高
设备,其性价比总是会越差。所以通过多台廉价的 PC Server 构建高处理能力的分布式集
群, 总是会成为各个公司节约成本, 提高整体处理能力的一个目标。 然在实现这个目标
时候可能会遇到各种各样的技术问题,但总是值得去研究实践的。
后面的内容,我们将重点针 Scale Out 方面来进行分析设计。要能够很好的 Scale
Out ,势必需要进行分布式的系统设计。对于数据库,要想较好 Scale Out ,我们只有两
个方向, 一个是通过数据的不断复制来实现很多个完全一样的数据源来进行扩展, 另一个
是通过将一个集中的数据源切分成很多个数据源来实现扩展。
下面我们先看看在设计一个具有很好的 Scalability 的数据库应用系统架构方面,需
要遵循一些什么样的原则。
of 108
50墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜