Eureka相关
# 配置服务实例地址
eureka.instance.hostname
# 服务提供者的心跳续约(默认每隔30秒发送一次心跳)
eureka.instance.lease-renewal-interval-in-seconds=30
# 超过指定时间(默认90秒)没有发送心跳,可以认为服务提供者失效
eureka.instance.lease-expiration-duration-in-seconds=90
# eureka-server定时检查服务提供者的心跳续约情况,默认60秒
eureka.server.eviction-interval-timer-in-ms=60000
# eureka-server开启自我保护机制,默认为true,当出现大量服务没有发送心跳时,不会剔除服务
eureka.server.enable-self-preservation=true
# 定时对readOnly缓存和readWrite缓存的同步时间(毫秒级)
eureka.server.response-cache-update-interval-ms=3000
# 只读缓存关闭
eureka.server.use-read-only-response-cache=false
# eureka-client客户端配置eureka-server地址
eureka.client.serviceUrl.defaultZone=http://eureka-server.hostname:eureka-server.port
# client是否注册到eureka中
eureka.client.register-with-eureka=true
# client是否从eureka拉取注册信息
eureka.client.fetch-registy=true
# 服务消费者每隔一段时间拉取eureka注册表信息(默认30秒)
eureka.client.registry-fetch-interval-in-seconds=30
优化服务发现响应
# 服务提供者
eureka:
instance:
# 服务提供者续租发送心跳间隔减少
lease-renewal-interval-in-seconds: 15
# 超过规定时间没有发送心跳,服务提供者失效
lease-expiration-duration-in-seconds: 60
# 服务消费者
eureka:
client:
# 服务消费者拉取注册中心的注册表信息的时间间隔
registry-fetch-interval-in-seconds: 15
eureka:
server:
# 注册中心定时检查服务提供者的心跳信息
evication-interval-timer-ms: 15
# 定时同步readWrite缓存数据到readOnly缓存
response-cache-update-interval-in-ms: 15
# 或者关闭readOnly一级缓存
use-read-only-response-cache: false
Ribbon相关
# 针对单个服务的ribbon配置,如果是全局配置,删除 sys-deviceminprogram即可
sys-deviceminprogram: # 服务名称
ribbon:
# 请求连接超时时间
ConnectTimeout: 2000
# 请求处理超时时间
ReadTimeout: 5000
# 对所有操作都进行重试
OkToRetryOnAllOperations: true
## 根据上面的配置,当访问到故障请求的时候,会再尝试访问一次当前实例(次数由MaxAutoRetries配置)
## 如果不行,就切换另外一个实例访问,再不行,就再切换实例(更换次数由MaxAutoRetriesNextServer配置)
## 依然不行,就返回失败信息
# 对当前选中的实例的重试次数,不包括第一次调用
MaxAutoRetries: 1
# 切换实例的重试次数
MaxAutoRetriesNextServer: 0
# 修改指定服务的负载均衡策略
NFloadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
Hystrix相关
hystrix:
command:
default:
circuitBreaker:
# 强制打开熔断器,属性设置为true,拒绝所有请求。默认为false
foreOpen: false
# 触发熔断错误比例阈值,默认50%
errorThresholdPercentage: 50
# 熔断触发的最小请求次数,默认20次
requestVolumeThreshold: 2
# 熔断后的休眠时间,默认是5秒
sleepWindowInMilliseconds: 3000
execution:
isolation:
thread:
# 熔断超时设置,默认1秒
timeoutInMillsecods: 2000
management:
# 暴露健康检查端口
endpoints:
web:
exposure:
include: "*"
# 暴露健康接口的细节
enpoint:
health:
show-details: always
Feign相关
# 对熔断器的支持
feign:
hystrix:
enabled: true
feign:
comparession:
request:
enabled: true # 开启请求压缩
mine-types: text/html.application/xml,application/json # 设置压缩的数据类型,此处是默认值
min-request-size: 2048 # 设置触发压缩的大小下限,此处是默认值
response:
enabled: true # 开启响应压缩
logging:
level:
# Fegin日志只会对日志级别为debug的做出响应
com.xxx.xxx.controller.service.TestServiceFeignClient: debug
Gateway相关
# 路由规则配置
spring:
cloud:
gateway:
routes:
# 自定义路由ID,保持唯一
- id: service-deviceminprogram-router
# 目标服务地址
# uri: http://127.0.0.1:9001
# 动态路由,从注册中心获取服务,sys-deviceminprogram为服务名称
uri: lb://sys-deviceminprogram
# gateway网关从服务注册中心获取实例信息然后敷在后路由
# 断言:路由条件,接收一个输入参数,返回一个布尔值结果
predicates:
- Path: /api/unlock/**
filters:
# 可以去掉api之后转发(去掉uri的第一个路径)
# http://127.0.0.1:9001/api/unlock/test -> http://127.0.0.1:9001/unlock/test
- StripPrefix=1
Spring Cloud Config相关
spring:
cloud:
config:
server:
git:
uri: https://github.com/xxx/test-config-repo.git # 配置git服务地址
username: 296581238@qq.com # 配置git用户名
password: huangxxxx123 # 配置git密码
search-paths:
- test-config-repo
# 读取分支
label: master
注解相关
@EnableEurekaServer
@EnableDiscoverClient # 服务注册客户端
@EnableEurekaClient # eureka-client
@EnableCircuitBreaker # 开启断路器
@EnableConfigServer # 开启配置中心
@LoadBalanced # 开启Ribbon的负载均衡
相关依赖包