SpringCloud学习--网站架构演变过程

125 阅读3分钟

网站架构演变过程:

传统架构-->分布式架构-->SOA架构(面向服务架构)-->微服务架构

传统架构(单点应用,即传统的SSM项目或者SSH项目)

适用场景:

适合一个人或者小团队进行开发。

缺 点:

(1)代码的耦合度太高,一旦一个模块不可用可能导致整个系统无法提供服务,会影响 到其它的模块的正常使用。

(2)在协作开发时容易发生代码冲突,并且开发任务不好分配,不适合多人进行开发。

分布式架构

特点:

(1)分布式架构师基于传统架构演变而来的,以项目粒度进行划分,将传统项目拆分成n多个子项目(打包的时候会产生多个war包或者可以说有多个jvm进行通信),每个项目中都有自己独立的服务器环境,如独立的Mysql、Redis。

(2)与传统架构的区别:项目粒度更加细,更适合于互联网公司进行开发,代码耦合度大大降低了。

注意点:

(1)服务与项目的概念:

服务: 将共同的业务逻辑进行拆分,拆分成一个独立的项目进行部署,只包含了业务逻辑层,没有视图层。

项目: 包含业务逻辑层和视图层,项目包含前台项目和后台项目。

(2)聚合项目不一定是分布式架构

解释: 可以将传统的项目分为mvc三层,但是他们最终只会打包成一个jar包。但是当互联网公司以聚合项目方式进行开发不同模块的时候,它也相当于分布式架构。

SOA架构

特点:

(1)SOA也是基于分布式架构演变而来的,SOA架构代表面向服务架构,俗称服务化,可以理解为面向业务逻辑层,将共同的业务代码抽取出来,提供给其他接口进行调用。服务与服务之间使用rpc远程调用技术。

(2)(SOAP简单独享协议是HTTP+XML混合物)底层基于SOAP或者ESB(消息总线)实现,底层使用HTTP或者HTTPS协议+重量级的XML数据交换格式(在微服务中会替换成更加轻量级的json进行数据交换)。

微服务架构

微服务架构产生的原因:

(1)SOA架构依赖和中心化服务发现机制

(2)因为SOAP中使用的XML报文中含有非常大的冗余数据,所以在微服务中会以json格式进行替代

(3)SOA架构服务管理非常混乱,缺少服务管理和治理设施不完善。

特点:

(1)微服务架构从SOA架构演变过来,比SOA架构上粒度更加进行精细。让专业的人 做专业的事情(更加专注),目的是为了提高效率。每个服务与服务之间互不影响,每个服务必须独立部署(独立数据库、独立redis等),微服务架构更加体现轻量级,采用resttful风格提供API,也就是使用Http协议+JSON格式进行传输,更加轻巧,更加适合于互联网公司敏捷开发、 快速迭代产品。