当前位置: 云顶集团4008娱乐 > 互联网资讯 > 正文

架构入门系列(二)--- 架构的演进

时间:2019-12-02 23:08来源:互联网资讯
前面分享了架构是什么?为什么需要架构? 这里分享下架构的演进,简单介绍下单体架构,分层架构、SOA,微服务和服务网格架构。 看过这些架构里面可能用一个字概括就是“拆”。

前面分享了架构是什么?为什么需要架构?

这里分享下架构的演进,简单介绍下单体架构,分层架构、SOA,微服务和服务网格架构。

看过这些架构里面可能用一个字概括就是“拆”。单体架构

单体架构顾名思义就是所有组件都部署为一个进程。想当时最开始编程的是把展示层和业务逻辑都写在JSP里,代码都混淆在一起,越来越难维护,后面出现了MVC,后面想必大家刚开始学习的时候都是使用MVC模式编程的,MVC是逻辑分层了,物理上还在一个进程里面。让我们看看单体架构是怎么样的:

图片 1

从图上我们可以看到一般我们会把应用程序打成war包然后部署在Tomcat里面。

单体架构还是有很多好处的,易部署、易测试,出了问题也容易定位。

在单体架构上也可以做很多功夫来满足业务需求的。

1、水平扩展:部署多个单体架构,来分担业务请求,水平扩展需要考虑组件的状态化数据怎么解决。

2、前后端分离,静态文件是可以放在CDN的,动态请求才发送到业务这边来

3、数据存储层面也可以增加Cache,数据库可以读写分离,分库分表等。

图片 2

可以看出,单体架构在某些场景下还是能发挥作用的,现在企业系统应该还是有很多单体架构的。分层架构

看看单体架构有什么痛点吗?业务越来越多,所有业务都部署到一个进程里面,耦合比较高,开发效率低下,往往业务的重要性也不一样,进度也不一样,如果在一个进程里面,肯定会相互影响。逻辑层、数据访问层都耦合在一起,某一层出现性能瓶颈的时候,往往需要同时扩容,不能做到哪里有瓶颈就扩容哪里。

综上,分层架构有两种方式:

垂直分层:就是把不同的业务逻辑分开,但是同一个业务还是一个单体

水平分层:在单体架构的基础上,把网关层、逻辑层和DAO层都分割开,独立为一个进程。

假设有A、B、C三个业务,这样垂直方向和水平方向都进程层,就形成了下面的架构,每层都可以独立部署、动态扩展,缩容。不过层分多了,网络消耗会大,调用会复杂,定位问题都会比单体架构复杂得多。

图片 3

SOA

SOA全称是Service Oriented Architrcture, SOA里面也提出了服务的概念,主要是解决企业中很多异构系统的交互。从分层来看,SOA在垂直方向进行分层了。SOA有个ESB的概念,负责异构系统中间的通信以及各种协议的转换,比较重。

SOA主要用在企业中,互联网架构中一般不会使用。微服务

微服务就是把系统进行了水平拆分和垂直拆分。实施微服务架构,就需要明确服务划分的粒度。服务划分过细,服务间的调用关系就会变得复杂,调用链太长,性能降低,问题也定位比较困难。在实施微服务需要把服务管理建立好才能达到预想的效果,不然系统只会更难维护。

图片 4

Service Mesh

服务网格就是在微服务的基础在把基础设施那一块独立部署为一个进程了

图片 5

小结

可以看到,这些架构基本上就是一个子拆,水平拆分、垂直拆分。不过拆分了就会带来系统的复杂度,其中就会有产生很多技术来解决这些问题。经常说的分布式系统,就是把独立的系统拆分了就是分布式系统。后续会介绍其中的一些核心技术。希望对大家有所帮助,有帮助记得点赞哦!可以关注下,后面持续分享架构文章,谢谢!

编辑:互联网资讯 本文来源:架构入门系列(二)--- 架构的演进

关键词: