一、性能
a. 网络性能
b. 单此请求延迟
c. 网络效率
二、 可伸缩性
可伸缩性指架构可以通过添加组件来提升服务,或者允许组件之间具有交互功能。
一般可以通过简化组件,降低组件间的耦合度,将服务分散到许多组件等方法来改善可伸缩性。
可伸缩性受到组件之间的交互频率,以及组件对一个请求是使用同步还是异步的方式来处理等条件的制约。
三、简单性
通常指组件的简单程度,每个组件越简单,就可以越容易理解和实现,也越容易被验证。
一般,我们通过“关注点分离”原则来设计组件。
四、可修改性
一般指,就在当前架构下,对于系统做出修改的难易程度。
a. 可进化性
表示在修改一个组件时,对其他组件的负面影响程度。越是核心的组件,可进化性越低,也就是说,对这个组件的功能做出修改时可能同时必须修改大量的相关组件。
1. 静态进化;
2. 动态进化。
b. 可扩展性
表示将一个新的功能添加到系统的能力,不影响别的功能
1. 静态扩展;
2. 动态扩展。
c. 可定制性
指可以临时规定一个组件或者架构元素 的特性,从而提供一种非常规服务的能力。
d. 可配置性
通过对配置文件的修改,来提供不同的功能。
e. 可重用性
一个应用中的组件,可以在不被修改的情况下,可以在其他应用中重用的程度。
五、可见性
通常指一些关键组件的运行情况,可以被监控的程度。例如:正在交互的网络连接数,缓存使用情况。可以改善服务的性能,尤其是可靠性。
六、可移植性
指服务可以考虑跨平台运行,对于自定义架构无需考虑。
七、可靠性
服务在出现部分故障的时候,一个架构容易受到系统层面故障影响的程度。可以通过避免单点故障,增加冗余,允许监视,以及用可恢复的动作来缩小故障的范围等方法提高可靠性。