管控端
gray.server.discovery
Property Name |
Default Value |
Remarks |
evictionEnabled |
true |
定時同步註冊中心實例狀態的開關 |
evictionIntervalTimerInMs |
60000 |
定時同步註冊中心實例狀態的時間間隔(默認60秒), 0表示不創建定時任務
|
1
2
3
4
5 |
gray:
server:
discovery:
evictionEnabled: true
evictionIntervalTimerInMs: 60000 |
gray.server.instance
Property Name |
Default Value |
Remarks |
normalInstanceStatus |
STARTING , UP |
正常的實例狀態,默認爲STARTING , UP 實例狀態分別是STARTING , UP , OUT_OF_SERVICE , DOWN , UNKNOWN
|
1
2
3
4 |
gray:
server:
instance:
normalInstanceStatus: STARTING,UP |
gray.server.instance.eviction
Property Name |
Default Value |
Remarks |
enabled |
false |
是否啓用實例記錄清除任務(默認爲false) |
evictionIntervalTimerInMs |
86400000 |
任務間隔時間,單位爲毫秒(默認1天) |
evictionInstanceStatus |
DOWN , UNKNOWN |
需要清徐的實例狀態,默認DOWN , UNKNOWN |
lastUpdateDateExpireDays |
1 |
最後更新時間過期天數,默認1天 |
1
2
3
4
5
6
7
8 |
gray:
server:
instance:
eviction:
enabled: true
evictionIntervalTimerInMs: 86400000
evictionInstanceStatus: DOWN,UNKNOWN
lastUpdateDateExpireDays: 1 |
客戶端
gray
Property Name |
Default Value |
Remarks |
enabled |
false |
是否啓用實例記錄清除任務(默認爲false) |
grayRouting |
true |
是否灰度路由,如果開啓,將優先對灰度實例進行路由, 如果沒有匹配的灰度實例,再對正常實現進行路由
|
1
2
3 |
gray:
enabled: true
grayRouting: true |
gray.server
灰度管控端相關的配置
Property Name |
Default Value |
Remarks |
url |
|
灰度管控端的url 可以http://192.168.0.1:8080/uri 也可以是ribbon的風格http://gray-server/uri
|
loadbalanced |
false |
url是否是負載均衡的路徑 |
retryable |
true |
在和灰度服務器通信時,如果交互失敗,是否重試 |
retryNumberOfRetries |
3 |
重試次數 |
1
2
3
4
5
6 |
gray:
server:
url: http://gray-server
loadbalanced: false
retryable: true
retryNumberOfRetries: 3 |
gray.client
Property Name |
Default Value |
Remarks |
runenv |
web |
運行環境(默認web) |
serviceInitializeDelayTimeInMs |
40000 |
實始化灰度信息的延遲時間<默認40秒> |
serviceUpdateIntervalTimerInMs |
60000 |
定時從管控端更新灰度實例信息的間隔時間(默認60秒) 0表示不創建定時任務
|
1
2
3
4
5 |
gray:
client:
runenv: web
serviceInitializeDelayTimeInMs: 40000
serviceUpdateIntervalTimerInMs: 60000 |
gray.client.instance
實例自身相關的灰度參數,比如自動註冊灰度實例。
Property Name |
Default Value |
Remarks |
grayEnroll |
false |
是否自動註冊爲灰度服務,默認false |
grayEnrollDealyTimeInMs |
40000 |
觸發自動註冊的延遲時間 |
1
2
3
4
5 |
gray:
client:
instance:
grayEnroll: true
grayEnrollDealyTimeInMs: 40000 |
gray.client.caches
緩存的配置屬性,目前實例的灰度決策緩存策略(grayDecision)已應用
Property Name |
Default Value |
Remarks |
maximumSize |
1000 |
最大緩存數 |
expireSeconds |
60 |
過期時間(秒) |
1
2
3
4
5
6 |
gray:
client:
caches:
grayDecision:
maximumSize: 1000
expireSeconds: 60 |
gray.request
http request相關的配置
Property Name |
Default Value |
Remarks |
loadBody |
false |
是否記錄請求body,不推薦 |
1
2
3 |
gray:
request:
loadBody: false |
gray.request.track
灰度追蹤相關的配置
Property Name |
Default Value |
Remarks |
enabled |
true |
是否啓用灰度追蹤 |
trackType |
web |
追蹤類型: web環境 |
definitionsUpdateIntervalTimerInMs |
60000 |
定時從拉取最新的追蹤信息的間隔時間 |
definitionsInitializeDelayTimeInMs |
40000 |
初始化追蹤信息的延遲時間 |
1
2
3
4
5
6
7 |
gray:
request:
track:
enabled: true
trackType: web
definitionsUpdateIntervalTimerInMs: 60000
definitionsInitializeDelayTimeInMs: 40000 |
gray.request.track.web
Property Name |
Default Value |
Remarks |
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 Name |
Default Value |
Remarks |
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 Name |
Default Value |
Remarks |
enabled |
false |
是否開啓 |
services |
|
配置服務可以被轉發的實例狀態,該參數爲Map<String, List> 類型 |
zoneAffinity |
false |
是否開啓區域親和 |
cacheable |
false |
是否緩存 |
1
2
3
4
5
6
7 |
gray:
holdout-server:
enabled: false
zoneAffinity: false
cacheable: false
services:
service-a: STARTING |
gray.hystrix
Hystrix的相關配置
Property Name |
Default Value |
Remarks |
enabled |
false |
是否加載灰度hystrix的相關配置與實現類 |
threadTransmitStrategy |
WRAP_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 |