可伸缩性和可扩展性

mfux7ww3 2011-03-02 09:33:06
请问计算机系统的可伸缩性和可扩展性是一会事吗?什么是可伸缩性?主要实现技术有哪些?
这是我在读 分布式操作系统 时遇到的问题,谢谢 我也不太清楚这是应该属于哪个论坛
...全文
636 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cowover123456 2011-03-03
  • 打赏
  • 举报
回复
资源很好,就是内容更丰富些。
njciapple 2011-03-03
  • 打赏
  • 举报
回复
这里有两条建议如何去做到可伸缩性:

* 纵向可伸缩性:纵向可伸缩性是指在相同逻辑单元中增加资源去增加这种能力。比如:增加应用服

务器的CPU数量,或者增加内存的容量。这种纵向可伸缩性仅仅强调硬件的方式。
* 横向可伸缩性:横向可伸缩性是指增加多个逻辑单元,并使他们像一台机器工作一样。比如:集群、

分布式、负载平衡等方式。这种横向可伸缩性强调软件和硬件结合的方式。


从我理解,在软件范畴上,是软件系统本身的属性,或者进一步说是设计的属性,代码的属性。因为我们经常说设计的可扩展性,代码的可扩展性。那与之相对应的是什么呢?是变化,软件环境的变化(可能是业务环境,运行环境)导致软件要进行改动才能满足人们对它的要求,这种系统本身适应变化的能力就是可扩展性。

目前系统被扩展的几种形式:

1)直接修改代码。

相信大家都有过这样的经历,当需求改变或者增加新需求的时候。我们可能会修改多个类文件,可能还涉及配置文件,前台页面文件。这种改动,肯定要引起重新编译,打包和部署,肯定是需要停机的。这种改动涉及的面积广,需要预先经过很细致的分析,改完之后需要面积很大的回归测试以保证修改不会引入新的问题。

2)直接修改代码,但只局限在一个类或方法中。

这种虽然也是直接修改代码,但改动的范围受到了限制,对系统其它部分的影响也不是那么大了,分析起来相对容易。需要进行回归测试的范围也比上面的做法小。依然需要重新编译,打包和部署。

3)利用继承,编写子类继承以后的类,在子类里添加新的业务逻辑。

这种做法,没有修改以前的任何业务逻辑代码,而是增加了新的类来容纳新的业务逻辑。但是,在将新的类链接到代码中,同样需要改动部分代码。比如对新类的实例化过程是需要静态编译链接的。

4)运行时对象装配。

5)基于模块的运行时动态扩展。

6)基于中间语言

具体的请看这两个网址:
http://www.docin.com/p-37734012.html
http://gurudk.javaeye.com/blog/326496
njciapple 2011-03-03
  • 打赏
  • 举报
回复
可伸缩性是一个系统、一个网络、或者一次处理过程中非常值得期待的特性,它

意味着可以用一种非常优雅的方法去处理不断增长的系统的访问量。例如,他可以通过增加资源的方式

(最典型的是增加硬件)去适应系统吞吐量的不断增加。另一层商业方面的含义是指一个公司的可伸缩性:

它的商业模式可以支持公司经济的不断增长。

可伸缩性是指用最简单的方式做更多

的事情。一个网站的可伸缩性是指允许越来越多的人访问你的系统,但是对于每个用户来说,消耗的时间

却是不变的,这种可伸缩性要处理大量的并发访问者的数量。
大_爱 2011-03-02
  • 打赏
  • 举报
回复
代码写多了自然就明白了!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧