在 SpringBoot 的基础上构建的微服务框架
1.引入组件的启动器
2.覆盖默认配置
3.在引导类上添加相应的注解
注册中心,服务的注册与发现
spring.application.name 服务名
eureka.client.service-url.defaultZone http://localhost:10086/eureka
eureka.server.eviction-interval-time-in-ms 剔除无效连接的间隔时间
eureka.server.enable-self-preservation 关闭自我保护
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 拉取服务的间隔时间
负载均衡组件
Eureka feign 以及 zuul 已集成
配置负载均衡策略 < 服务名 >ribbon.NFLoadBalanceRuleClassName 负载均衡策略的全路径
@LoadBalanced 在 RestTemplate 的 @Bean 方法上
网关组件:
路由
过滤器
路由的配置
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/**
默认服务的入口就是以服务名为前缀 不配置
开启 zuul 网关组件
默认的抽象实现类:ZuulFilter
pre
post
route
error
执行顺序,返回值越小优先级越高
是否执行 run 方法
true 为执行
过滤器的具体逻辑
远程调用组件
集成 ribbon 和 hystrix
使代码更加优雅
开启熔断
开启 feign 的功能
@FeignClient(value="服务名", fallback=实现类.class)
方法上的注解使用的都是 springMVC 的注解
容错组件
启用熔断组件
返回值和参数列表和被熔断的方法一致
在被熔断的方法上 @HystrixCommand(fallbackMethod="熔断方法名")
返回值和被熔断的方法返回值一致,不能有参数列表
在类上 @DefaultProperties(defaultFallbck="全局熔断方法名")
在具体的被熔断方法上 @HystrixCommand