架构设计的目的之一是为了解决项目的复杂度。复杂度的来源,追求高性能,高可用,并且拓展。先从高性能来看。
2.高可用是没什么问题,但是我们怎么能知道那个可用那个不可用等等。这些也就用到了我们分布式中间件,如zookpeer,springCloud等会有一些心跳检测机制,得知那台机器可用不可用
无论是计算高可用还是存储高可用,其基础都是“状态决策”,即系统需要能够判断当前的状态是正常还是异常,如果出现了异常就要采取行动来保证高可用。如果状态决策本身都是有错误或者有偏差的,那么后续的任何行动和处理无论多么完美也都没有意义和价值。但在具体实践的过程中,恰好存在一个本质的矛盾:通过冗余来实现的高可用系统,状态决策本质上就不可能做到完全正确。下面我基于几种常见的决策方式进行详细分析。
就搞到这,眼睛疼。大家加油。 对我写的这篇文章感兴趣的可以看:https://time.geekbang.org/column/article/6895(阿里技术专家写的专栏)