搜索
您的当前位置:首页正文

【SpringCloud(一)】微服务架构体系及组件介绍

来源:榕意旅游网
【SpringCloud(⼀)】微服务架构体系及组件介绍⼀、微服务架构

1、微服务架构简介

  1.1、分布式:不同的功能模块部署在不同的服务器上,减轻⽹站⾼并发带来的压⼒。  1.2、集群:多台服务器上部署相同应⽤构成⼀个集群,通过负载均衡共同向外提供服务。

  1.3、微服务:微服务架构模式就是将web应⽤拆分为⼀系列⼩的服务模块,这些模块可以独⽴地编译、部署,并通过各⾃暴露的API接⼝通讯,共同组成⼀个web应⽤。

  1.4、SpringCloud是基于SpringBoot的⼀整套微服务框架,提供了⼀系列可配置的组件,如配置管理、服务发现、负载均衡、熔断器、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等。

2、微服务的特点

单⼀职责:每⼀个服务模块都对应单⼀的业务实现微:服务拆分的颗粒度很⼩

⾯向服务:每个服务对外仅暴露服务接⼝API即可,不关⼼服务的技术实现,与技术、语⾔和平台⽆关⾃治:服务间互相独⽴、互不⼲扰

团队独⽴

技术独⽴:提供Rest接⼝,⾯向服务即可前后端分离

数据库分离:每个服务使⽤⾃⼰的数据源

部署独⽴:每个服务都是独⽴的组件,可复⽤,可替换,降低服务间的耦合

3、三者的关系

微服务是⼀种结构理念,设计原则,提供理论指导;

Spring Boot专注于快速、⽅便集成的单个微服务个体,可以基于Spring Boot快速开发单个微服务;Spring Cloud是⼀个基于Spring Boot实现的服务⼯具治理包,专注于全局的服务治理框架。

⼆、Spring Cloud

1、Spring Cloud组件架构

上图中各组件的组件和运⾏流程如下:

所有请求都通过API⽹关来访问内部服务;

⽹关接受请求后,从注册中⼼获取可⽤服务模块;

由Ribbon进⾏负载均衡后,分发到后台的具体实例;各个服务模块之间通过Feign进⾏通信处理业务;Hystrix负责处理服务超时熔断;

Turbine监控服务间的调⽤和熔断相关指标。

再来看⼀个具体实例上的Spring Cloud服务流程:

2、Spring Cloud组件简介

2.1、主要组件简介

Eureka,服务注册中⼼Zuul,API服务⽹关

Config,分布式配置中⼼,⽀持本地仓库、SVN、Git、Jar包内配置等模式

Dashboard,Hystrix仪表盘,监控集群模式和单点模式,其中集群模式需要收集器Turbine配合Ribbon,客户端负载均衡Feign,声明式服务调⽤Bus,消息总线

2.2、组件主要功能

Eureka和Ribbon,⼀个注册服务,⼀个消费服务。

  Hystrix,为了优化Ribbon,防⽌整个微服务架构因为某个服务节点的问题导致崩溃,起到保险丝的作⽤。Dashboard,给Hystrix统计和展⽰⽤,⽽且监控服务节点的整体压⼒和健康情况。  Turbine,集群收集器,服务于Dashboard。

Zuul,加在整个微服务最前沿的防⽕墙和代理器,隐藏微服务结点IP端⼝信息,加强安全保护。Config,为了解决所有微服务各⾃维护各⾃的配置,设置⼀个统⼀的配置中⼼,⽅便修改配置。

  Bus是因为config修改完配置后各个结点都要refresh才能⽣效实在太⿇烦,所以交给bus来通知服务节点刷新配置的。

3、SpringCloud全家桶

1. ⾸先为了提供微服务之间的发现和注册,需要服务注册中⼼提供注册与发现功能,采⽤。

2. 消费者从注册中⼼拿到服务提供者的注册地址信息列表,为了从中选择⼀个提供⽅,避免流量集中在某台机,需要客户端负载均衡组件Ribbon。

3. 消费者得到具体提供⽅的地址信息后,发起远程调⽤,通过声明式调⽤组件Feign,将远程RestFul调⽤封装成接⼝调⽤。

4. 在微服务架构中,为了避免某个服务挂掉后引起服务雪崩,以及做到服务端失败后快速响应,提供了服务熔断以及降级机制Hystrix组件。

5. 为了对外屏蔽内部服务调⽤细节,在最前沿加⼊⽹关组件,提供流量控制、⾝份鉴别、负载均衡等安全防护功能,采⽤API⽹关Zuul组

件。

6. 随着系统访问量的增加,为避免单点的注册中⼼成为系统性能瓶颈,注册中⼼采⽤Eureka集群⽅式部署。

7. 随着系统扩⼤,Eureka集群的部署以及服务模块的增多,每个模块维护各⾃的配置信息,复杂且容易出错,引⼊配置中⼼SpringCloud Config组件,提供统⼀的配置信息管理。

8. 为了避免每次配置信息的变更都需要重启服务才能⽣效,引⼊消息总线Bus组件,提供⽆需重启、实时刷新配置信息等功能。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top