《从0开始学架构》读后感

高可用

手段:单纯从形式上来看,高可用也是通过增加机器来实现的,但其本质上和为了实现高性能而增加机器有区别:高性能增加机器在于扩展处理性能,高可用增加机器在于冗余处理单元。

高可用的主要手段是服务与数据的失效转移和冗余备份。

高可用的定义:系统无中断的执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。

为什么会不可用,一类是硬件故障,一类是软件设计上的bug。

计算高可用:增加计算服务器和任务分配器。任务分配器需要考虑与计算服务器之间连接建立、连接检测等的问题,还需要考虑分配算法,可以是一主多备,多主等等;

存储高可用:难点不在于如何备份数据,而在于如何减少或规避数据不一致对业务造成的影响;

可扩展性

具备可扩展性的系统:正确预测变化,完美封装变化。

如何设计:面向对象思想、设计模式。具备良好的可扩展性的系统有两个思考维度:

(1)从业务维度对可预计的变化进行预判;
把系统的可变部分封装到“可变层”,稳定部分封装到“不变层”;
提炼出抽象层和实现层;

(2)从技术维度,利用扩展性好的技术,实现对变化的封装;
使用分布式服务框架构建可复用的业务平台;
使用分布式消息队列实现对应用间的松耦合;

comments powered by Disqus