雪月书韵茶香 雪月书韵茶香

专心做可以提升自己的事情
学习并拥有更好的技能
成为一个值得交往的人


目录
SpringCloud脑图总结
/    

SpringCloud脑图总结

什么是 SpringCloud

在 SpringBoot 的基础上构建的微服务框架
1.引入组件的启动器
2.覆盖默认配置
3.在引导类上添加相应的注解

Eureka

注册中心,服务的注册与发现

服务端

1.引入服务端启动器:eureka-server

2.添加了配置

spring.application.name 服务名

eureka.client.service-url.defaultZone http://localhost:10086/eureka

eureka.server.eviction-interval-time-in-ms 剔除无效连接的间隔时间

eureka.server.enable-self-preservation 关闭自我保护

3.@EnableEurekaServer 开启 eureka 服务端功能

客户端

1.引入启动器: eureka-client

2.添加配置

spring.application.name

eureka.client.server-url.defaultZone

eureka.instance.lease-renewal-interval-in-seconds 心跳时间

eureka.instance.lease-expiration-duration-in-seconds 过期时间

eureka.client.register-with-eureka 是否注册给 eureka 容器 / 默认 true

eureka.client.fetch-registry 是否拉取服务列表 /默认 true

eureka.client.registry-fetch-interval-seconds 拉取服务的间隔时间

3. @EnableDiscoverClient 启用 eureka 客户端

ribbon

负载均衡组件
Eureka feign 以及 zuul 已集成
配置负载均衡策略 < 服务名 >ribbon.NFLoadBalanceRuleClassName 负载均衡策略的全路径
@LoadBalanced 在 RestTemplate 的 @Bean 方法上

zuul

网关组件:
路由
过滤器

1.引入启动器

2. 添加配置

路由的配置

zuul.prefix 路由前缀

四种路由配置方式

zuul.routes.< 路由名 >.path=/service-provider/**
zuul.routes.< 路由名 >.url=http://localhost:8081

zuul.routes.< 路由名 >.path=/service-provider/**
zuul.routes.< 路由名 >.serviceId=service-provider

zuul.routes.路由名:服务名=/service-provider/**

默认服务的入口就是以服务名为前缀  不配置

3.@EnableZuulProxy

开启 zuul 网关组件

自定义过滤器

IZuulFilter

默认的抽象实现类:ZuulFilter

filterType

pre
post
route
error

filterOrder

执行顺序,返回值越小优先级越高

shouldFilter

是否执行 run 方法
true 为执行

run

过滤器的具体逻辑

四种执行顺序

pre-->route-->post

异常

pre 或者 route 出现异常 直接执行 error-->post

post 出现异常 error--> 响应

error 出现异常 error-->post

feign

远程调用组件
集成 ribbon 和 hystrix
使代码更加优雅

1.引入 feign 的启动器

2.feign.hystrix.enable=true

开启熔断

3.@EnableFeignClients

开启 feign 的功能

代码

定义一个接口

@FeignClient(value="服务名", fallback=实现类.class)
方法上的注解使用的都是 springMVC 的注解

hystrix

容错组件

降级

1.引入 hystrix 的启动器

2.添加配置,超时时间的配置

3.@EnableCircuitBreaker

启用熔断组件

@SpringCloudApplication

@SpringBootApplication
@EnableDiscveryClient

代码

局部

返回值和参数列表和被熔断的方法一致
在被熔断的方法上 @HystrixCommand(fallbackMethod="熔断方法名")

全局

返回值和被熔断的方法返回值一致,不能有参数列表
在类上 @DefaultProperties(defaultFallbck="全局熔断方法名")
在具体的被熔断方法上 @HystrixCommand

熔断

close

关闭状态

所有请求都正常访问

open

打开状态

所有请求都无法访问

触发:连续失败的比例大于 50% 或者失败次数不少于 20

维持 5s 的休眠时间

half open

半开状态

释放部分请求通过

正常 close
不正常 open

触发:休眠时间之后

xmind 源文件.zip

springCloud.png


标题:SpringCloud脑图总结
作者:shuaibing90
版权声明:本站所有文章除特别声明外,均采用 CC BY-SA 4.0转载请于文章明显位置附上原文出处链接和本声明
地址:https://xysycx.cn/articles/2020/10/07/1602073393344.html
欢迎加入博主QQ群点击加入群聊:验证www.xysycx.cn