【SpringCloud微服务笔记01】微服务架构

        随着互联网的飞速发展,人们的生活带来了翻天覆地的变化。传统下的互联网产品已经无法满足复杂的业务需求,为了降低业务之间的耦合性,快速部署项目,轻松持续改进项目,微服务架构应运而生。


一、架构的发展

1.1单体架构

        单体架构就是将所有的业务场景的表示层,业务逻辑层和数据访问层放在一个工程中,最终经过编译,打包,部署在一台服务器上

                          【SpringCloud微服务笔记01】微服务架构_第1张图片

        随着业务越来越复杂,所需要的功能越来越多,这种单体架构的代码量越来越大,可读性,可维护性,和扩展性会下降,同时其存在的隐患也比较多。任何一个Bug,都可能会导致整个应用的宕机。

1.2SOA架构

        针对以上的这些传统的问题,SOA架构应运而生。面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。

                【SpringCloud微服务笔记01】微服务架构_第2张图片

         但是主从同步本身也存在一些缺点:系统结构复杂,开销大,不利于系统维护,一般适用于中小型企业。

1.3微服务架构

        微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。

                【SpringCloud微服务笔记01】微服务架构_第3张图片

         由图中可看出,微服务架构中每个服务都有自己的独立的数据库,数据库之间没有任何联系。好处在于不同业务和不同业务之间不需要提供数据库集成,而是提供AP相互调用。

二、微服务架构的功能

微服务架构是一种架构风格,一个大型复杂软件应用由多个微服务架构组成。系统中的各个微服务架构可被独立部署,各个微服务架构之间是松耦合的。每个微服务架构仅关注于完成一项任务并很好地完成该任务。在所有情况下,每项任务代表着一个小的业务能力。微服务架构的功能如下:

1.1 微服务的自动化部署

        微服务架构中,系统会被拆分为若干个微服务架构,每个微服务架构又是一个独立的应用程序。单体架构中的应用程序只需要部署一次,而微服务架构中有多少服务就需要部署多少次。随着服务数量的增加,部署的难度就会增加。业务的粒度划分得越细,微服务架构的数量就越多。因此就出现了自动化部署技术,例如Docker容器自动化部署技术方便了微服务架构项目下各模块在服务器上的部署。

2.服务集中化管理

        微服务架构系统是按照业务单元来划分的,服务数量越多,管理起来越复杂。在这里,微服务架构提供了集中化管理组件Spring Cloud Config,人们可以在Spring Cloud Config配置文件中统一配置服务,这样很大程度上方便了对项目的集中化管理。

3.支持熔断机制

        微服务架构就是分布式的。在分布式系统中,服务之间是相互依赖的,如果一个服务出现了故障或者网络延迟,在高并发的情况下,就会导致线程阻塞,在很短的时间内该服务的线程资源会消耗殆尽,最终使得该服务不可用。

        由于服务相互依赖,这样可能会导致整个服务的不可用,这就是“雪崩”效应。熔断机制是应对“雪崩”效应的一种微服务架构链路保护机制。我们在各种场景下都会接触到熔断这两个字。高压电路中,如果某个地方的电压过高,熔断器就会熔断,对电路进行保护;股票交易中,如果股票指数过高,就也会采用熔断机制,暂停股票的交易。同样,在微服务架构中,熔断机制也是起着类似的作用。当一条链路的某个微服务架构不可用或者响应时间太长时,会进行服务的降级,进而调用熔断该节点的微服务架构,快速返回错误的响应信息;当检测到该节点微服务架构调用响应正常后,恢复调用链路。

你可能感兴趣的:(spring,cloud,微服务,eureka)