架构演进之旅-为什么使用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)开发成本变大、部署成本变大。