整体发展概览
服务架构一直处于演变之中,为了适合自己的业务,不断的去调整。
整体的发展历程如下:
开发者视角
从一个 java 开发者,感受大概经历了下面几个历程:
第一阶段:单体架构
早期,大部分IT系统都是单体系统,例如传统的SSH架构,此时前后端也没有分离,UI组件也包含在了控制层:
这个也就是老马刚毕业时候的架构,SSH 基本是面试必问。
不过现在这些都发生了一些变化,主流已经变成了 spring mvc + spring contaienr + mybatis。
只能说,spring,java 界永远的春天!
第二阶段:分布式架构
为了方便给系统扩容,以及增加系统的复用性,出现分布式系统。
另一方面,系统模块快速膨胀,为了降低系统内部的复杂度,于是对系统模块进行拆解,分不到不同的系统中,降低模块耦合,加快迭代速度。
ps: 其实主要是降低单个应用的复杂性,让每一个应用专注于一件事情。这样可维护成本大大降低,换言之,开发完后以后,可以让一个刚毕业的新人做运维。把开发者裁掉,降低成本。
主流主要是 SOA 和 MSA 两种体系。
SOA
早期的分布式系统是基于面向服务的架构SOA。
SOA是微服务的前身,主要是为了摆脱单体应用的问题,达到以下效果:
-
充分利用现有的基础设施;
-
SOA体系结构依赖于消息传递(AMQP,MSMQ)和SOAP作为主要的远程访问协议。
-
快速响应业务变化;
架构图如下: