Spring Cloud Gray 配置参数

黄弘深
2023-12-01

转载: https://www.appblog.cn/2020/09/16/Spring%20Cloud%20Gray%20%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0/

管控端

gray.server.discovery

Property NameDefault ValueRemarks
evictionEnabledtrue定时同步注册中心实例状态的开关
evictionIntervalTimerInMs60000定时同步注册中心实例状态的时间间隔(默认60秒),
0表示不创建定时任务
1
2
3
4
5
gray:
  server:
    discovery:
      evictionEnabled: true
      evictionIntervalTimerInMs: 60000

gray.server.instance

Property NameDefault ValueRemarks
normalInstanceStatusSTARTINGUP正常的实例状态,默认为STARTINGUP
实例状态分别是STARTINGUPOUT_OF_SERVICEDOWNUNKNOWN
1
2
3
4
gray:
  server:
    instance:
      normalInstanceStatus: STARTING,UP

gray.server.instance.eviction

Property NameDefault ValueRemarks
enabledfalse是否启用实例记录清除任务(默认为false)
evictionIntervalTimerInMs86400000任务间隔时间,单位为毫秒(默认1天)
evictionInstanceStatusDOWNUNKNOWN需要清徐的实例状态,默认DOWNUNKNOWN
lastUpdateDateExpireDays1最后更新时间过期天数,默认1天
1
2
3
4
5
6
7
8
gray:
  server:
    instance:
      eviction:
        enabled: true
        evictionIntervalTimerInMs: 86400000
        evictionInstanceStatus: DOWN,UNKNOWN
        lastUpdateDateExpireDays: 1

客户端

gray

Property NameDefault ValueRemarks
enabledfalse是否启用实例记录清除任务(默认为false)
grayRoutingtrue是否灰度路由,如果开启,将优先对灰度实例进行路由,
如果没有匹配的灰度实例,再对正常实现进行路由
1
2
3
gray:
  enabled: true
  grayRouting: true

gray.server

灰度管控端相关的配置

Property NameDefault ValueRemarks
url 灰度管控端的url
可以http://192.168.0.1:8080/uri
也可以是ribbon的风格http://gray-server/uri
loadbalancedfalseurl是否是负载均衡的路径
retryabletrue在和灰度服务器通信时,如果交互失败,是否重试
retryNumberOfRetries3重试次数
1
2
3
4
5
6
gray:
  server:
    url: http://gray-server
    loadbalanced: false
    retryable: true
    retryNumberOfRetries: 3

gray.client

Property NameDefault ValueRemarks
runenvweb运行环境(默认web)
serviceInitializeDelayTimeInMs40000实始化灰度信息的延迟时间<默认40秒>
serviceUpdateIntervalTimerInMs60000定时从管控端更新灰度实例信息的间隔时间(默认60秒)
0表示不创建定时任务
1
2
3
4
5
gray:
  client:
  runenv: web
  serviceInitializeDelayTimeInMs: 40000
  serviceUpdateIntervalTimerInMs: 60000

gray.client.instance

实例自身相关的灰度参数,比如自动注册灰度实例。

Property NameDefault ValueRemarks
grayEnrollfalse是否自动注册为灰度服务,默认false
grayEnrollDealyTimeInMs40000触发自动注册的延迟时间
1
2
3
4
5
gray:
  client:
  instance:
    grayEnroll: true
    grayEnrollDealyTimeInMs: 40000

gray.client.caches

缓存的配置属性,目前实例的灰度决策缓存策略(grayDecision)已应用

Property NameDefault ValueRemarks
maximumSize1000最大缓存数
expireSeconds60过期时间(秒)
1
2
3
4
5
6
gray:
  client:
    caches:
      grayDecision:
        maximumSize: 1000
        expireSeconds: 60

gray.request

http request相关的配置

Property NameDefault ValueRemarks
loadBodyfalse是否记录请求body,不推荐
1
2
3
gray:
  request:
    loadBody: false

gray.request.track

灰度追踪相关的配置

Property NameDefault ValueRemarks
enabledtrue是否启用灰度追踪
trackTypeweb追踪类型: web环境
definitionsUpdateIntervalTimerInMs60000定时从拉取最新的追踪信息的间隔时间
definitionsInitializeDelayTimeInMs40000初始化追踪信息的延迟时间
1
2
3
4
5
6
7
gray:
  request:
    track:
      enabled: true
      trackType:  web
      definitionsUpdateIntervalTimerInMs: 60000
      definitionsInitializeDelayTimeInMs: 40000

gray.request.track.web

Property NameDefault ValueRemarks
pathPatterns/*Filter拦截的uri,多个用逗号分隔
excludePathPatterns Filter拦截排除的uri,多个用逗号分隔
1
2
3
4
5
6
gray:
  request:
    track:
      web:
        pathPatterns: /*
        excludePathPatterns: /static/*

gray.request.track.web.trackDefinitions

追踪项配置。这部分可以在项目中配置好,也可以在管控端编辑。优先级以管控端优先,项目配置次之。

Property NameDefault ValueRemarks
name 追踪项的名称
value 追踪项的内容(字段),多个用逗号分隔
1
2
3
4
5
6
7
gray:
  request:
    track:
      web:
        trackDefinitions:
          name: HttpHeader
          value: varsion

gray.holdoutServer

Ribbon的举例,Ribbon在路由转发时,只会将请求转发给实例状态为UP的Server。 如果在新版本上线过程中,希望上线的实例不影响正常用户,同时又能在线上进行测试,这就需要Ribbon能够将特定的请求转发给不是UP状态的实例。通过该配置,可以实现。

Property NameDefault ValueRemarks
enabledfalse是否开启
services 配置服务可以被转发的实例状态,该参数为Map<String, List>类型
zoneAffinityfalse是否开启区域亲和
cacheablefalse是否缓存
1
2
3
4
5
6
7
gray:
  holdout-server:
    enabled: false
    zoneAffinity: false
    cacheable: false
    services:
      service-a: STARTING

gray.hystrix

Hystrix的相关配置

Property NameDefault ValueRemarks
enabledfalse是否加载灰度hystrix的相关配置与实现类
threadTransmitStrategyWRAP_CALLABLE线程变量传递策略,分别WRAP_CALLABLE,HYSTRIX_REQUEST_LOCAL_STORAGE
WRAP_CALLABLE: 使用com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy实现
HYSTRIX_REQUEST_LOCAL_STORAGE: 使用com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableDefault实现
1
2
3
4
gray:
  hystrix:
    enabled: true
    threadTransmitStrategy: WRAP_CALLABLE
 类似资料: