forked from polaris-contrib/polaris-cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpolaris.yaml.template
380 lines (380 loc) · 12.4 KB
/
polaris.yaml.template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
#配置模板,不要直接使用
#不传配置文件或传空的配置文件,SDK会使用默认配置初始化,根据需要传入配置覆盖默认配置项
#描述:全局配置
global:
#描述系统相关配置
system:
#服务发现集群
discoverCluster:
namespace: Polaris
service: polaris.discover
#可选:服务刷新间隔
refreshInterval: 10m
#健康检查集群
healthCheckCluster:
namespace: Polaris
service: polaris.healthcheck
#可选:服务刷新间隔
refreshInterval: 10m
#监控上报集群
monitorCluster:
namespace: Polaris
service: polaris.monitor
#可选:服务刷新间隔
refreshInterval: 10m
# 限流统计集群
metricCluster:
namespace: Polaris
service: polaris.metric
refreshInterval: 10m
#描述:对外API相关配置
api:
#描述:SDK绑定的网卡地址,
#类型:string
bindIf: eth1
#描述:SDK绑定的IP地址,
#类型:string
#特殊说明:假如不传,则SDK通过bindIf的网卡名取地址,假如bindIf为空,则通过tcp连接的localAddress来获取地址
bindIP: 192.168.1.2
#描述:api超时时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:1s
timeout: 1s
#描述:API因为网络原因调用失败后的重试次数
#类型:int
#范围:[0:...]
#默认值: 3
maxRetryTimes: 3
#描述:重试间隔
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1s:...]
#默认值:1s
retryInterval: 1s
#描述:SDK的离线地域信息,假如server没有返回正确的地域信息,则使用离线地域信息
#location:
#描述:大区
#类型:string
#region: south-china
#描述:区域
#类型:string
#zone: shenzhen
#描述:园区
#类型:string
#campus: longgang
#描述:对接polaris server的相关配置
serverConnector:
#描述:server列表,由于SDK在运行过程中可以通过接口定时拉取最新server列表,因此这里填的是初始的地址
#类型:list
#默认值:代理模式,默认为127.0.0.1:8888(本地agent地址);直连模式,无默认值
#addresses:
#- 127.0.0.1:8081 # 埋点地址
#描述:访问server的连接协议,SDK会根据协议名称会加载对应的插件
#类型:string
#范围:已注册的连接器插件名
#默认值:grpc
protocol: grpc
#描述:发起连接后的连接超时时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:200ms
connectTimeout: 200ms
#描述:连接空闲时间,长连接模式下,当连接空闲超过一定时间后,SDK会主动释放连接
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:500ms
connectionIdleTimeout: 500ms
#描述:远程请求超时时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:1s
messageTimeout: 1s
#描述:首次请求的任务队列长度,当用户发起首次服务访问请求时,SDK会对任务进行队列调度并连接server,当积压的任务数超过队列长度后,SDK会直接拒绝首次请求的发起。
#类型:int
#范围:[0:...]
#默认值:1000
requestQueueSize: 1000
#描述:server节点的切换周期,为了使得server的压力能够均衡,SDK会定期针对最新的节点列表进行重新计算自己当前应该连接的节点,假如和当前不一致,则进行切换
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1m:...]
#默认值:10m
serverSwitchInterval: 10m
#统计上报设置
statReporter:
#描述:是否将统计信息上报至monitor
#类型:bool
#默认值:true
enable: true
#描述:启用的统计上报插件类型
#类型:list
#范围:已经注册的统计上报插件的名字
#默认值:stat2Monitor(将信息上报至monitor服务)
chain:
- stat2Monitor
#描述:统计上报插件配置
plugin:
stat2Monitor:
#描述:每次上报多长一段时间的统计信息
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1m:...]
metricsReportWindow: 1m
#描述:将一段时间内的统计信息分为多少个基本单元收集
#类型:int
#范围:[1:...]
#默认值:12
metricsNumBuckets: 12
#描述:主调端配置
consumer:
#描述:本地缓存相关配置
localCache:
#描述:缓存类型
#类型:string
#范围:已注册的本地缓存插件名
#默认值:inmemory(基于本机内存的缓存策略)
type: inmemory
#描述:服务定期刷新周期
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1s:...]
#默认值:2s
serviceRefreshInterval: 2s
#描述:服务过期淘汰时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1m:...]
#默认值:24h
serviceExpireTime: 24h
#描述:服务缓存持久化目录,SDK在实例数据更新后,按照服务维度将数据持久化到磁盘
#类型:string
#格式:本机磁盘目录路径,支持$HOME变量
#默认值:$HOME/polaris/backup
persistDir: $HOME/polaris/backup
#描述:缓存写盘失败的最大重试次数
#类型:int
#范围:[1:...]
#默认值:5
persistMaxWriteRetry: 5
#描述:缓存从磁盘读取失败的最大重试次数
#类型:int
#范围:[1:...]
#默认值:1
persistMaxReadRetry: 1
#描述:缓存读写磁盘的重试间隔
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:1s
persistRetryInterval: 1s
#描述:节点熔断相关配置
circuitBreaker:
#描述:是否启用节点熔断功能
#类型:bool
#默认值:true
enable: true
#描述:实例定时熔断检测周期
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[100ms:...]
#默认值:500ms
checkPeriod: 500ms
#描述:熔断策略,SDK会根据策略名称加载对应的熔断器插件
#类型:list
#范围:已注册的熔断器插件名
#默认值:基于周期连续错误数熔断(errorCount)、以及基于周期错误率的熔断策略(errorRate)
chain:
- errorCount
- errorRate
#描述:熔断插件配置
plugin:
#描述:基于周期连续错误数熔断策略配置
errCount:
#描述:触发连续错误熔断的阈值
#类型:int
#范围:[1:...]
#默认值:10
continuousErrorThreshold: 10
#描述:连续失败的统计周期
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[10ms:...]
#默认值:1m
metricStatTimeWindow: 1m
#描述:熔断器半开后最大允许的请求数
#类型:int
#范围:[3:...]
#默认值:3
requestCountAfterHalfOpen: 3
#描述:熔断器打开后,多久后转换为半开状态
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1s:...]
#默认值:3s
sleepWindow: 5s
#描述:熔断器半开到关闭所必须的最少成功请求数
#类型:int
#范围:[1:requestCountAfterHalfOpen]
#默认值:2
successCountAfterHalfOpen: 2
#描述:基于周期错误率的熔断策略配置
errRate:
#描述:触发错误率熔断的最低请求阈值
#类型:int
#范围:(0:...]
#默认值:10
requestVolumeThreshold: 10
#描述:触发错误率熔断的阈值
#类型:double
#范围:(0:1]
#默认值:0.5
errorRateThreshold: 0.5
#描述:错误率熔断的统计周期
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1s:...]
#默认值:1m
metricStatTimeWindow: 1m
#描述:错误率熔断的最小统计单元数量
#类型:int
#范围:[1:...]
#默认值:12
metricNumBuckets: 12
#描述:熔断器半开后最大允许的请求数
#类型:int
#范围:[3:...]
#默认值:3
requestCountAfterHalfOpen: 3
#描述:熔断器打开后,多久后转换为半开状态
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1s:...]
#默认值:3s
sleepWindow: 5s
#描述:熔断器半开到关闭所必须的最少成功请求数
#类型:int
#范围:[1:requestCountAfterHalfOpen]
#默认值:2
successCountAfterHalfOpen: 2
#描述: set(集群)熔断相关配置
setCircuitBreaker:
enable: false
#描述:故障探测相关配置
healthCheck:
#描述:是否启用故障探测功能
#类型:bool
#默认值:true
enable: true
#描述:定时故障探测周期
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1s:...]
#默认值:10s
checkPeriod: 10s
#描述:故障探测策略,SDK会根据策略名称加载对应的探测器插件
#类型:list
#范围:已注册的探测器插件名
#默认值:基于tcp协议的探测器
chain:
- tcp
#描述:故障探测插件配置
plugin:
#描述:基于TCP的故障探测策略
tcp:
#描述:探测超时时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[10ms:100ms]
#默认值:100ms
timeout: 100ms
#描述:探测失败重试次数
#类型:int
#范围:[0:...]
#默认值:0
retry: 0
#描述:tcp发送的探测包,可选字段,假如不配置,则默认只做连接探测
#类型:string
#格式:^0x[1-9A-Fa-f]+$
send: 0xEEEEEEEE
#描述:期望接收的TCP回复包,可选字段,假如不配置,则默认只做连接或发包探测
#类型:string
#格式:^0x[1-9A-Fa-f]+$
receive: 0xFFFFFFF
#描述:基于TCP的故障探测策略
udp:
#描述:探测超时时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[10ms:100ms]
#默认值:100ms
timeout: 100ms
#描述:探测失败重试次数
#类型:int
#范围:[0:...]
#默认值:0
retry: 0
#描述:udp发送的探测包,必选字段,假如不配置,则不启动UDP探测
#类型:string
#格式:^0x[1-9A-Fa-f]+$
send: 0xEEEEEEEE
#描述:期望接收的UDP回复包,必选字段,假如不配置,则不启动UDP探测
#类型:string
#格式:^0x[1-9A-Fa-f]+$
receive: 0xFFFFFFF
http:
#描述:探测超时时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[10ms:100ms]
#默认值:100ms
timeout: 100ms
#描述:http探测路径,必选字段,假如不配置,则不启用http探测
#类型:string
#范围:^/.+$
path: /ping
#描述:负载均衡相关配置
loadBalancer:
#描述:负载均衡类型
#范围:已注册的负载均衡插件名
#默认值:权重随机负载均衡
type: weightedRandom
#描述:服务路由相关配置
serviceRouter:
# 服务路由链
chain:
# 基于主调和被调服务规则的路由策略(默认的路由策略)
- ruleBasedRouter
# 就近路由策略
- nearbyBasedRouter
#描述:服务路由插件的配置
plugin:
nearbyBasedRouter:
#描述:就近路由的最小匹配级别
#类型:string
#范围:region(大区)、zone(区域)、campus(园区)
#默认值:zone
matchLevel: zone
# 就近路由最大的匹配级别
maxMatchLevel: none
# 是否启用按服务不健康实例比例进行降级
enableDegradeByUnhealthyPercent: true
# 需要进行降级的实例比例,不健康实例达到百分之多少才进行降级。值(0, 100]。
# 默认100,即全部不健康才进行切换。
unhealthyPercentToDegrade: 100
# 允许全死全活
enableRecoverAll: true
rateLimiter:
# global:默认值,该模式表示会使用分布式限流,必须填写rateLimitCluster。
# local:表示只会使用本地限流,不会使用分布式限流,可不填rateLimitCluster
mode: local
# global模式必填,分布式限流时用于发现限流服务器
rateLimitCluster:
# 限流服务器集群所在命名空间
namespace: Polaris
# 限流服务器集群名字
service: poalris.metirc.xxx.yyy