笔记
“360 度环评”!具体的操作方式为:列出我们需要关注的质量属性点,然后分别从这些质量属性的维度去评估每个方案,再综合挑选适合当时情况的最优方案。
常见的方案质量属性点有:性能、可用性、硬件成本、项目投入、复杂度、安全性、可扩展性等。在评估这些质量属性时,需要遵循架构设计原则 1“合适原则”和原则 2“简单原则”,避免贪大求全,基本上某个质量属性能够满足一定时期内业务发展就可以了。
如果每次做方案都考虑这种小概率事件,我们的方案会出现过度设计,导致投入浪费。
如果某个质量属性评估和业务发展有关系(例如,性能、硬件成本等),需要评估未来业务发展的规模时,一种简单的方式是将当前的业务规模乘以 2 ~4 即可,如果现在的基数较低,可以乘以 4;如果现在基数较高,可以乘以 2。
量变会引起质变,具体哪些地方质变,是很难提前很长时间能预判到的。
正确的做法是按优先级选择,即架构师综合当前的业务发展情况、团队人员规模和技能、业务发展预测等因素,将质量属性按照优先级排序,首先挑选满足第一优先级的,如果方案都满足,那就再看第二优先级。
理解与思考
- 难于选择是因为备选项的优缺点不能量化。我们只能凭感觉去选择。而感觉经常是不可靠的。
- 从质量属性上去评估备选方案,避免考虑不周全,遗漏的情况。一个方案的好坏优略,从这些方面也能或多或少的体现出来。
- 按优先级来排序。先解决当下最关注的质量问题。
课后思考题
RocketMQ 和 Kafka 有什么区别,阿里为何选择了自己开发 RocketMQ?