SpringCloud原理
如果还没有学习过,建议先了解以下微服务
什么是微服务?
-
传统单体架构
业务量小,所有代码放在一个项目里即可。这些项目部署在一台服务器即可。整个项目所有服务器都由这台服务器提供。
-
优点:项目架构简单,适用于小型项目
-
缺点:维护困难,所有模块公用一个数据库,项目要求所有技术统一。
-
-
微服务是一种架构风格,由多个可以独立部署的应用组件组成。直白地说,是将传统单体结构的项目,按照服务进行彻底拆分。每个服务可以独自运行,每个服务都会占用线程
优点
服务原子化拆分,独立打包,独立部署,升级。利于扩展
使用轻量级机制通信,通常为HTTP API(RESTful)
所有服务都可以使用不同技术实现,不同数据存储技术。
微服务常见概念
-
服务治理
-
服务注册
-
服务发现
-
服务剔除
-
-
服务调用
-
服务网关
-
服务容错
-
链路追踪
-
负载均衡
什么是SpringCloud
分布式微服务架构的一站式解决方案,一系列框架的有序集合。它并不是一个具体的框架。它是各微服务架构技术集合,亦称微服务全家桶。
SpringCloud常用组件
-
Eureka(服务注册与发现)
管理微服务的通信地址,可以通过服务的名字实现服务调用
-
负载均衡
-
Ribbon(客户端负载均衡)
-
Feign(服务端负载均衡,其实质也是依赖于Ribbon,只是将调用方式RestTemplete更改成Service接口)
用来解决微服务之间的通信问题,服务发生调用的时将请求按照某种规则分发到多个目标服务器上。
-
-
Zuul(服务网关)
所有的请求都需要经过zuul之后才能到达目标服务
-
Hystrix(断路器)
一个请求可能需要多个微服务共同完成,一旦某个服务发生故障,可能导致整个调用链上的微服务全都异常,甚至整个微服务架构瘫痪。Hystrix就是用来解决微服务故障,保护微服务安全的组件。
-
Spring Cloud Config(分布式配置)
作为分布式配置管理中心就是用来统一的管理服务的配置文件。
-
Spring Cloud Bus(消息总线)
微服务中给各个微服务广播消息的一个组件,使用消息总线构建一个消息中心,其他微服务接入到消息中心,当消息总线发起消息,接入的微服务都可以收到消息。
-
Spring Cloud sleuth (微服务链路追踪)
微服务中,一个请求可能需要多次服务调用,链路追踪用来监控维护之间的调用关系,让程序员方便直观的感受到一个请求经历了哪些微服务,以及服务的请求时间,是否有异常等。