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

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

目录
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://www.xysycx.cn/articles/2020/10/07/1602073393344.html
欢迎加入博主QQ群点击加入群聊:验证www.xysycx.cn