本来翻译出来想放在技术部知识库上的,担心太烂被人拍死,放在javaeye吧,欢迎斧正:)
原文链接:http://www.hfadeel.com/Blog/?p=120
可伸缩性的艺术(1)
我打算写两至三篇关于可伸缩性的文章。其中第一篇文章叫做‘可伸缩性原则’——介绍可伸缩性的概念
及其原则,接下来我会介绍可伸缩性模式、相关反模式以及下一篇文章准备介绍的一些可伸缩性准则。我
们现在开始吧!
在电信和软件工程行业中,可伸缩性是一个系统、一个网络、或者一次处理过程中非常值得期待的特性,它
意味着可以用一种非常优雅的方法去处理不断增长的系统的访问量。例如,他可以通过增加资源的方式
(最典型的是增加硬件)去适应系统吞吐量的不断增加。另一层商业方面的含义是指一个公司的可伸缩性:
它的商业模式可以支持公司经济的不断增长。 [Wikipedia]
如果你无法理解Wikipedia 对可伸缩性的定义的话,请接着看这句:可伸缩性是指用最简单的方式做更多
的事情。一个网站的可伸缩性是指允许越来越多的人访问你的系统,但是对于每个用户来说,消耗的时间
却是不变的,这种可伸缩性要处理大量的并发访问者的数量。
这里有两条建议如何去做到可伸缩性:
* 纵向可伸缩性:纵向可伸缩性是指在相同逻辑单元中增加资源去增加这种能力。比如:增加应用服
务器的CPU数量,或者增加内存的容量。这种纵向可伸缩性仅仅强调硬件的方式。
* 横向可伸缩性:横向可伸缩性是指增加多个逻辑单元,并使他们像一台机器工作一样。比如:集群、
分布式、负载平衡等方式。这种横向可伸缩性强调软件和硬件结合的方式。
现在有一个问题:我们该如何设计和架构的软件的可伸缩性呢?架构师们努力去实现线性可伸缩性,这种
可伸缩性希望通过增加系统资源的方式去支撑持续增加的吞吐量。然而,增加资源的方式容易导致额外的
开销,(making it difficult to achieve)Royans K Tharakan 称之为“可伸缩性因子”,下面列举可伸
缩性因子的几种类型:
* 如果可伸缩性因子是一个常量,则称之为线性可伸缩性因子。
* 如果某些性能没有随着资源的增加而成比例,这种小于1的可伸缩性因子则称为次性线可伸缩因子。
* 在及其少的情况下,仅仅增加资源可以得到更好的性能(比如RAID的磁盘主轴越多,IO访问速度越
快),这种则称为主性线可伸缩因子。
* 如果系统根本没有考虑到可伸缩性的设计,有可能资源的增加了,性能反而会下降。这称为负可伸
缩性。
和大部分的软件开发过程一样,没有一种固定的模式能够解决所有的可伸缩性问题。如果你现在非常迫切
的需要改善系统的可伸缩性,那么走横向可伸缩性这条路是最容易的,但是随着系统吞吐量的增大,花费也会
越来越高。而横向可伸缩性与之相比,虽然实现起来比较困难,但几乎可以达到无线的伸缩性。
另外一方面,横向可伸缩性不要求越来越高的硬件支出,它只需要一定数量的存储器和服务器。但是这种方式
也不会很便宜,我们必须打造出能够部署在多台服务器上,但对外却是一个整体的系统。
分享到:
相关推荐
并避免过度获取节点js 作为后端打字稿用于减少错误和装饰器对graphql的支持型态用于迁移,因为正在使用的打字稿和类型为orm的为此PostgreSQL 关系Redux 用于状态管理以实现可伸缩性图请求作为graphql bcoz的客户,...
AccDC是可伸缩,跨浏览器和跨平台兼容的动态内容管理系统,可自动呈现动态内容,以确保仅屏幕阅读器和键盘用户的可访问性。 在皇家艺术协会的支持下,AccDC获得了美国劳工部的“无障碍获取奖”,并在2012年由美国...
网站伸缩性架构7.网站的可扩展架构8.网站的安全架构9. 淘宝网的架构演化案例分析10. 维基百科的高性能架构设计分析11.海量分布式存储系统Doris高可用架构设计分析12.网购秒杀系统架构设计案例分析13.大型网站典型...
6 永无止境:网站的伸缩性架构 7 随需应变:网站的可扩展架构 8 固若金汤:网站的安全架构 第3篇 案例 9 淘宝网的架构演化案例分析 10 维基百科的高性能架构设计分析 11 海量分布式存储系统Doris的高可用架构...
Java 5以及6在开发并发程序中取得了显著的进步,提高了Java虚拟机的性能以及并发类的可伸缩性,并加入了丰富的新并发构建块。在《JAVA并发编程实践》中,这些便利工具的创造者不仅解释了它们究竟如何工作、如何使用...
在当前数字信息技术和网络技术高速发展的后PC(Post-PC)时代,嵌入式...Windows CE.net是微软公司推出的32位嵌入式操作系统,具备多任务、实时性、模块化及可伸缩性、强大的通信能力以及图形界面友好等优点。将操作
在当前数字信息技术和网络技术高速发展的后PC(Post-PC)时代,嵌入式...Windows CE.net是微软公司推出的32位嵌入式操作系统,具备多任务、实时性、模块化及可伸缩性、强大的通信能力以及图形界面友好等优点。将操作
推荐书籍这是一个回购,其中列出了我推荐的书籍,因为我将其更多地投入到了操作/基础架构...保持数据准时容量规划的技巧:扩展Web资源可伸缩性的艺术:现代企业的可伸缩Web架构,流程和组织 系统思考系统思考:入门失败
该应用程序使用Node.js和MVC架构构建,旨在确保易用性和可伸缩性。入门可以在找到该应用程序的实时且功能齐全的部署关键技术HTML CSS 引导程序JavaScript jQuery的车把Node.js Express.js PostgreSQLPg-Promise ...
还对可伸缩性进行了改进。 拉请求比欢迎:) 如何使用 先决条件 安装Python 3 +点(适用于GAN服务器) 安装NodeJS + npm(用于前端) 安装PostgreSQL服务器 启动GAN服务器 cd gan_server # Install dependencies ...
Java 5以及6在开发并发程序中取得了显著的进步,提高了Java虚拟机的性能以及并发类的可伸缩性,并加入了丰富的新并发构建块。在《JAVA并发编程实践》中,这 些便利工具的创造者不仅解释了它们究竟如何工作、如何使用...
静态站点具有可伸缩性,安全性,并且几乎不需要维护。 但是它们有一个缺点。 并非所有人都对编辑文件,构建项目并将其上传到某个地方感觉良好。 这就是满足感发挥作用的地方。 使用Contentful和Gatsby,您可以将...
雷格利德 Rayglider尝试使glsl开发现代化,并为网络上的艺术表达提供强大的媒介。 它的各个方面都可以使用RayGL(一种glsl变体)在驱动器中直接驱动... url缩短服务为它们的分发提供了同样出色的可伸缩性。 资源 例子
12.4 数据挖掘的艺术 301 12.5 小结 301 第13章 实现数据挖掘结构 302 13.1 实现CRISP-DM生命周期模型 302 13.2 用BIDS构建数据挖掘结构 303 13.3 用BIDS增加数据挖掘模型 305 13.4 处理挖掘模型 308 13.5 验证挖掘...
要了解更多信息,请阅读以下网站的Apex 4X发行文章: : AccDC是可伸缩,跨浏览器和跨平台兼容的动态内容管理系统,可自动呈现动态内容,以确保仅屏幕阅读器和键盘用户的可访问性。 在皇家艺术协会的支持下,AccDC...
摩天大厦不可伸缩 混合开发的时代已经来临 性能至上 留意架构图里的空白区域 学习软件专业的行话 具体情境决定一切 侏儒、精灵、巫师和国王 向建筑师学习 避免重复 欢迎来到现实世界 仔细观察,别试图控制一切 架构...
12.4 数据挖掘的艺术 301 12.5 小结 301 第13章 实现数据挖掘结构 302 13.1 实现CRISP-DM生命周期模型 302 13.2 用BIDS构建数据挖掘结构 303 13.3 用BIDS增加数据挖掘模型 305 13.4 处理挖掘模型 308 13.5 验证挖掘...
12.4 数据挖掘的艺术 301 12.5 小结 301 第13章 实现数据挖掘结构 302 13.1 实现CRISP-DM生命周期模型 302 13.2 用BIDS构建数据挖掘结构 303 13.3 用BIDS增加数据挖掘模型 305 13.4 处理挖掘模型 308 13.5 验证挖掘...
12.4 数据挖掘的艺术 301 12.5 小结 301 第13章 实现数据挖掘结构 302 13.1 实现CRISP-DM生命周期模型 302 13.2 用BIDS构建数据挖掘结构 303 13.3 用BIDS增加数据挖掘模型 305 13.4 处理挖掘模型 308 13.5 ...
新的可伸缩Web应用程序构建趋势以及该平台就是证明。 该平台建立在: 特别感谢 ,它使我们能够在其基础结构上托管应用程序。 到目前为止建立的对话 使用Node.JS的服务器端JavaScript Web作为开发平台 非暴力侵害...