分而治之是解决管理系统复杂度的普遍方法,合并、拆分、协同、自治是所有架构都会包含的主要元素。
分治算法 到 分治思维
对于程序员来说,分治法是一种很重要的算法,也是分治思维最基本的体现。
分治算法主要的三个过程:
1.将一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题----“分”
2.将最后子问题可以简单的直接求解----“治”
3.将所有子问题的解合并起来就是原问题得解----“合”
分治方式,需要满足一个最重要的条件:不同分支上的子问题,不能相互依赖,需要各自独立;
水平拆分更多的是解决计算的弹性,而垂直拆分则更多解决业务的复杂度的问题,在我们实际的应用中,水平拆分和垂直拆分经常同时存在,分治后虽然解决了弹性和业务复杂性的问题,但也伴随着合并集成、运维管理的复杂度的升高;
拆分是架构设计的手段而非结果,所有的系统都是物理上拆分,逻辑上整合;底层拆分,上层聚合。
拆分是一个过程,分分合合就是度的把握,没有一步到位的设计,只有演进式调整。
标签:思维,----,复杂度,分治,问题,拆分 From: https://www.cnblogs.com/anpeiyong/p/18235240