1.性能
一个软件系统的性能是衡量这个软件的一个重要指标。一般来说,一个软件系统被分割成的层次越多,系统会运行得越慢。究其原因:一方面,不同的组件或层次之间需要与其相邻的上下层次进行通信,如果不够恰当地设计这些通信,那么就会对性能产生很大的影响。其中,在设计通信的时候需要考虑通信的方式、数据结构的格式,以及数据量。另一方面,如果把代码分别放在不同的组件中,当一个组件要调用另外一个组建的方法时,就需要程序去寻找这个组件和指定的方法,然后才能执行方法,这样肯定会比把所有的代码放在一个组件中要慢,特别是当相互调用组件处在不同的网络中时,更不可小视它对性能的影响。
2.可伸缩性
可伸缩性是架构中需要重点考虑的内容。可伸缩性是指系统是否可以处理未来一段时间内所增加的负载。一个可伸缩的系统必须具有随着负荷的增加响应时间也线性增加的特点。这样就可以通过线性增加的硬件设备、实例个数或分布式处理点来处理更多的数据量。也就能在不减少响应时间的前提下更好地支持更多的用户了。
系统的可伸缩性可以从硬件和软件两方面来理解:1)应将的可伸缩性:通过硬件设备的增加来支持更多的用户,比如增加CPU的个数或存储器空间大小等。2)软件的可伸缩性:通过运行更多的实力或采用分布处理方式来支持更多的用户。
可伸缩性和性能是息息相关的,有时候,一个小的应用系统采用1—Tier和1—Layer的架构就可以了,虽然其伸缩性不好,但是这样可以在性能和功能上达到最优。对于一些大的系统,仅仅是1—Tier可能就无法承受了,此时就需要考虑将系统的功能在不同的级别上进行拆分和组合,将功能发布到不同的物理层面上,以达到可伸缩性和性能方面的平衡。
更多精彩技术类文章请来
阅读(1057) | 评论(0) | 转发(0) |