分布式系统架构演进
Posted 赶路人儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式系统架构演进相关的知识,希望对你有一定的参考价值。
技术为业务而生,随着业务不断的壮大,系统会遇到各种各样的瓶颈,为了解决这些瓶颈问题,催生了不同的架构。下面,我讲解一下一般大型分布式系统的架构演进。
上图是阿里技术演进图,绝大多数系统基本上会按照这个流程发展。
1、单体应用(all in one):
以Java来说,可能只是一两个war包就解决了;这时的用户量、数据量规模都比较小,这样的架构既简单实用、便于维护,成本又低,成为了这个时代的主流架构方式。
2、垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,于是将应用拆成互不相干的几个应用,这样每个应用的压力大约有原来的1/n(粗略估计值),以提升效率。
3、分布式服务架构
当垂直应用越来越多,业务上跨应用的交互不可避免,这给垂直应用架构带来了很大的挑战,如何才能进行跨应用的交互呢?RPC的出现解决了这个问 题,RPC作为分布式架构的核心内容,在提高业务复用、业务整合、架构扩展等方面发挥着不可替代的作用。因为RPC的实现方式有很多种,单一语言、跨语言 都存在相应的开源产品(当然也可以自建),这为RPC的使用及推广奠定了良好的基础。
4、SOA
分布式架构中的服务越来越多,导致交互越发复杂,如何才能更好的管理复杂的调用关系、对整个服务集群进行动态控制。服务治理被引入来解决上述问题。
- 服务注册、服务发现;
- 服务降级;
- 流量控制;
个人理解,SOA就是分布式服务的一个升级版本,本质上还是分布式服务,只不过SOA为这种分布式的服务带来的复杂性提出了解决方案。
5、容器化:
随着分布式服务的数量不断增多,不可避免的遇到资源浪费现象(有的服务需要很少的资源,有的服务占用了绝大多数资源),同时会出现编译、打包耗时等问题;以及系统回滚费事、而且存在风险等;这是,容器化解决上述所有问题。
以上是关于分布式系统架构演进的主要内容,如果未能解决你的问题,请参考以下文章
1.凤凰架构:构建可靠的大型分布式系统 --- 服务架构演进史