架构演进之旅-为什么使用SpringCloud微服务架构

    • 1 集中式架构
    • 2 垂直架构
    • 3 分布式架构
    • 4 SOA架构
    • 5 微服务架构

架构演进之旅

​ 随着互联网的发展,网站应用规模的不断扩大。因此系统架构也在不断的演进、升级、优化。从集中式架构,到垂直架构,到分布式架构,到SOA架构,到微服务架构。

1 集中式架构

也称为巨石架构。只存在一个应用,所有功能都部署在一起。

优点:

​ 1)开发成本低。

​ 2)部署成本低。

缺点:

​ 1)代码耦合度高维,维护困难。

​ 2)无法针对不同模块进行优化

​ 3)单点部署容错率低,并发能力差

2 垂直架构

​ 为了应对访问量增加、业务需求优化。根据业务功能对系统进行拆分,从而产生垂直架构。


优点:

​ 1)拆分成多系统部署,提升了并发能力。

​ 2)可以针对不同的系统进行优化。

​ 3)多系统部署,容错率提升。

缺点:

​ 1)系统间相互独立,会产生很多重复代码&工作,降低开发效率。

3 分布式架构

​ 为了避免系统中产生过多重复代码,所以将核心代码抽取出来,作为独立服务,从而提升系统的复用性。


优点:

​ 提升了代码复用性与开发效率。

缺点:

​ 系统耦合度变高,调用关系复杂,维护困难。

4 SOA架构

​ 为了解决服务间调用复杂、耦合度高、难以维护的问题。因此产生了SOA架构,引入了注册中心思想。


优点:

​ 1)通过注册中心实现服务间的自动注册与发现,无需人为记录服务地址。

​ 2)通过注册中心实现服务调用的透明化,利于管理维护。

缺点:

​ 1)服务间存在调用依赖关系,一旦某个服务宕机,容易出现服务雪崩。

​ 2)服务调用关系复杂,不利于运维、部署。

5 微服务架构

​ 微服务架构与SOA架构相类似,但是对于服务划分粒度更细,每个服务间互不干扰,各自独立,只负责单一职责。


优点:

​ 1)服务间互不干扰,各自独立包括团队、技术栈。

2)每个微服务独立数据库。

​ 3)各个服务独立部署,从而提升复用性,降低服务耦合,易于维护。

缺点:

​ 1)开发成本变大、部署成本变大。