你的位置:首页 > 软件开发 > 数据库 > MySQL性能调优与架构设计——第12章 可扩展设计的基本原则

MySQL性能调优与架构设计——第12章 可扩展设计的基本原则

发布时间:2016-06-14 13:00:06
第12章 可扩展设计的基本原则 前言: 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了。此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架构体系,提升系统的扩展能力,通过组合多个低处理能力的硬件设备来达到一个高处理能力的系 ...

第12章 可扩展设计的基本原则 前言: 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了。此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架构体系,提升系统的扩展能力,通过组合多个低处理能力的硬件设备来达到一个高处理能力的系统,也就是说,我们必须进行可扩展设计。可扩展设计是一个非常复杂的系统工程,所涉及的各个方面非常的广泛,技术也较为复杂,可能还会带来很多其他方面的问题。但不管我们如何设计,不管遇到哪些问题,有些原则我们还是必须确保的。本章就将可扩展设计过程中需要确保的原则做一个简单的介绍。 12.1 什么是可扩展性

在讨论可扩展性之前,可能很多朋有会问:常听人说起某某网站某某系统在可扩展性方面设计的如何如何好,架构如何如何出色,到底什么是扩展?怎样算是可扩展?什么又是可扩展性呢?其实也就是大家常听到的Scale,Scalable和Scalability这三个词。 ◆ Scale Out 优点: 1. 成本低,很容易通过价格低廉的PC Server 搭建出一个处理能力非常强大的计算集群; 2. 不太容易遇到瓶颈,因为很容易通过添加主机来增加处理能力; 3. 单个节点故障对系统整体影响较小;也存在缺点,更多的计算节点,大部分时候都是服务器主机,这自然会带来整个系统维护复杂性的提高,在某些方面肯定会增加维护成本,而且对应用系统的架构要求也会比 Scale Up 更高,需要集群管理软件的配合。 ◆ Scale Out 缺点: 1. 处理节点多,造成系统架构整体复杂度提高,应用程序复杂度提高; 2. 集群维护难以程度更高,维护成本更大; ◆ Scale Up 优点: 1. 处理节点少,维护相对简单; 2. 所有数据都集中在一起,应用系统架构简单,开发相对容易; ◆ Scale Up 缺点 1. 高端设备成本高,且竞争少,容易受到厂家限制; 2. 受到硬件设备发展速度限制,单台主机的处理能力总是有极限的,容易遇到最终无法解决的性能瓶颈; 3. 设备和数据集中,发生故障后的影响较大; 12.2 事务相关性最小化原则

搭建分布式数据库集群的时候,很多人都会比较关心事务的问题。毕竟事务是数据库中非常核心的一个功能。 应用不仅需要分拆原来的很多大事务,同时还需要保证各个小事务的之间的完整性。也就是说,应用程序自己需要具有一定的事务能力,这无疑会增加应用程序的技术难度。 但是,这个方案也有不少自己的优势。首先我们的数据的切分规则就会更为简单,很难遇到限制。而且更简单,就意味着维护成本更低。其次,没有数据切分规则的太多限制,数据库方面的可扩展性也会更高,不会受到太多的约束,当出现性能瓶颈的时候可以快速进行进一步拆分现有数据库。最后,数据库做到离实际业务逻辑更远,对后续架构扩展也就更为有利。 不论我们使用何种解决方案,那就是在我们设计应用程序的时候,都需要尽可能做到让数据的事务相关性更小,甚至是不需要事务相关性。当然,这只是相对的,也肯定只有部分数据能够做到。但可能就是某部分数据做到了无事务相关性之后,系统整体复杂度就会降低很大一个层次,应用程序和数据库系统两方面都可能少付出很多的代价。 12.3 数据一致性原则当然,在很多人眼中,数据的一致性在某种程度上面也是属于事务完整性的范畴。不过这里为了突出其重要性和相关特性,我还是将他单独提出来分析。 而如何区分出这两类数据,就必须经过详细的分析业务场景商业需求后进行充分的评估才能得出结论。 12.5 小结

不论我们如何设计架构,不管我们的可扩展性如何变化,本章中所提到的一些原则都是非常重要的。不论是解决某些问题的原则,还是保证性的原则,不论是保证可用性的原则,还是保证数据安全的原则,我们都应该在设计中时时刻刻都关注,谨记。MySQL 数据库之所以在互联网行业如此火爆,除了其开源的特性,使用简单之外,还有一个非常重要的因素就是在扩展性方面有较大的优势。其不同存储引擎各自所拥有的特性可以应对各种不同的应用场景。其 Replication 以及 Cluster 等特性更是提升扩展性非常有效的手段。

 

 

摘自:《MySQL性能调优与架构设计》简朝阳

转载请注明出处:

作者:JesseLZJ

原标题:MySQL性能调优与架构设计——第12章 可扩展设计的基本原则

关键词:MYSQL

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。