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: 15eureka: 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: 2000management: # 暴露健康检查端口 endpoints: web: exposure: include: "*" # 暴露健康接口的细节 enpoint: health: show-details: always
Feign相关
# 对熔断器的支持feign: hystrix: enabled: truefeign: 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的负载均衡
相关依赖包