-
Notifications
You must be signed in to change notification settings - Fork 60
/
polaris.yaml
309 lines (309 loc) · 10.4 KB
/
polaris.yaml
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
#描述:全局配置项
global:
#描述系统相关配置
system:
#描述:SDK运行模式
#类型:enum
#范围:0(直连模式,SDK直接对接server); 1(代理模式,SDK只对接agent, 通过agent进行server的对接)
#默认值:0
mode: 0
#服务发现集群
discoverCluster:
namespace: Polaris
service: polaris.discover
#可选:服务刷新间隔
refreshInterval: 10m
#健康检查集群
healthCheckCluster:
namespace: Polaris
service: polaris.healthcheck
#可选:服务刷新间隔
refreshInterval: 10m
#监控上报集群
monitorCluster:
namespace: Polaris
service: polaris.monitor
#可选:服务刷新间隔
refreshInterval: 10m
api:
#描述:api超时时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:1s
timeout: 1s
#描述:上报间隔
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:10m
reportInterval: 10m
#描述:API因为网络原因调用失败后的重试次数
#类型:int
#范围:[0:...]
#默认值:5
maxRetryTimes: 5
#描述:重试间隔
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1s:...]
#默认值:1s
retryInterval: 1s
#描述:客户端绑定的网卡地址
bindIf:
#描述:对接polaris server的相关配置
serverConnector:
#描述:访问server的连接协议,SDK会根据协议名称会加载对应的插件
#类型:string
#范围:已注册的连接器插件名
#默认值:grpc
protocol: grpc
#描述:发起连接后的连接超时时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:200ms
connectTimeout: 500ms
#描述:远程请求超时时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:1s
messageTimeout: 1s
#描述:连接空闲时间,长连接模式下,当连接空闲超过一定时间后,SDK会主动释放连接
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:1s
connectionIdleTimeout: 1s
#描述:首次请求的任务队列长度,当用户发起首次服务访问请求时,SDK会对任务进行队列调度并连接server,当积压的任务数超过队列长度后,SDK会直接拒绝首次请求的发起。
#类型:int
#范围:[0:...]
#默认值:1000
requestQueueSize: 1000
#描述:server节点的切换周期,为了使得server的压力能够均衡,SDK会定期针对最新的节点列表进行重新计算自己当前应该连接的节点,假如和当前不一致,则进行切换
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1m:...]
#默认值:10m
serverSwitchInterval: 10m
plugin:
grpc:
#描述:GRPC客户端单次最大链路接收报文
#类型:int
#范围:(0:524288000]
maxCallRecvMsgSize: 52428800
#统计上报设置
statReporter:
#描述:是否将统计信息上报至monitor
#类型:bool
#默认值:true
enable: false
#描述:启用的统计上报插件类型
#类型:list
#范围:已经注册的统计上报插件的名字
#默认值:stat2Monitor(将信息上报至monitor服务)
chain:
- prometheus
# - pushgateway
#描述:统计上报插件配置
plugin:
prometheus:
#描述: 设置 prometheus 指标上报模式
#类型:string
#默认值:pull
#范围:pull|push
type: pull
#描述: 设置 prometheus http-server 的监听IP, 仅 type == pull 时生效
#类型:string
#默认值: ${global.api.bindIP}
#默认使用SDK的绑定IP
metricHost:
#描述: 设置 prometheus http-server 的监听端口, 仅 type == pull 时生效
#类型:int
#默认值: 28080
#如果设置为负数,则不会开启默认的http-server
#如果设置为0,则随机选择一个可用端口进行启动 http-server
metricPort: 28080
# #描述: 设置 pushgateway 的地址, 仅 type == push 时生效
# #类型:string
# #默认 ${global.serverConnector.addresses[0]}:9091
# address: 127.0.0.1:9091
# #描述:设置metric数据推送到pushgateway的执行周期, 仅 type == push 时生效
# #类型:string
# #格式:^\d+(ms|s|m|h)$
# #范围:[1m:...]
# #默认值:10m
# pushInterval: 10s
# 地址提供插件,用于获取当前SDK所在的地域信息
# location:
# providers:
# - type: local
# region: ${REGION}
# zone: ${ZONE}
# campus: ${CAMPUS}
# - type: remoteHttp
# region: http://127.0.0.1/region
# zone: http://127.0.0.1/zone
# campus: http://127.0.0.1/campus
# - type: remoteService
# address: grpc://127.0.0.1
#描述:主调端配置
consumer:
#描述:本地缓存相关配置
localCache:
#描述:缓存类型
#类型:string
#范围:已注册的本地缓存插件名
#默认值:inmemory(基于本机内存的缓存策略)
type: inmemory
#描述:服务过期淘汰时间
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1m:...]
#默认值:24h
serviceExpireTime: 24h
#描述:服务定期刷新周期
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1s:...]
#默认值:2s
serviceRefreshInterval: 2s
#描述:服务缓存持久化目录,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
#描述:缓存文件有效时间差值
#类型:string
#格式:^\d+(ms|s|m|h)$
#范围:[1ms:...]
#默认值:1s
persistAvailableInterval: 60s
#描述:启动后,首次名字服务是否可以使用缓存文件
#类型:bool
#范围:[true: false]
#默认值:true
startUseFileCache: true
#描述:服务路由相关配置
serviceRouter:
# 服务路由链
chain:
# 基于主调和被调服务规则的路由策略(默认的路由策略)
- ruleBasedRouter
# 就近路由策略
- nearbyBasedRouter
afterChain:
# 兜底路由,默认存在
- filterOnlyRouter
# 开启零实例保护路由,和 filterOnlyRouter 互斥
# - zeroProtectRouter
#描述:服务路由插件的配置
plugin:
nearbyBasedRouter:
#描述:就近路由的最小匹配级别
#类型:string
#范围:region(大区)、zone(区域)、campus(园区)
#默认值:zone
matchLevel: zone
ruleBasedRouter: {}
#至少应该返回多少比率的实例,如果不填,默认0%,即全死全活
percentOfMinInstances: 0
#是否开启全死全活,默认开启
enableRecoverAll: true
#描述:负载均衡相关配置
loadbalancer:
#描述:负载均衡类型
#范围:已注册的负载均衡插件名
#默认值:权重随机负载均衡
type: weightedRandom
plugin:
#描述:虚拟节点的数量
#类型:int
#默认值:500
ringHash:
vnodeCount: 500
#描述:节点熔断相关配置
circuitBreaker:
#描述:是否启用节点熔断功能
#类型:bool
#默认值:true
enable: true
#描述:熔断策略,SDK会根据策略名称加载对应的熔断器插件
#类型:list
#范围:已注册的熔断器插件名
#默认值:composite 适配服务/接口/实例 熔断插件
chain:
- composite
# 配置中心默认配置
config:
# 类型转化缓存的key数量
propertiesValueCacheSize: 100
# 类型转化缓存的过期时间,默认为1分钟
propertiesValueExpireTime: 60000
# 本地缓存配置
localCache:
#描述: 配置文件持久化到本地开关
persistEnable: true
#描述: 配置文件持久化目录,SDK在配置文件变更后,把相关的配置持久化到本地磁盘
persistDir: ./polaris/backup/config
#描述: 配置文件写盘失败的最大重试次数
persistMaxWriteRetry: 1
#描述: 配置文件从磁盘读取失败的最大重试次数
persistMaxReadRetry: 0
#描述: 缓存读写磁盘的重试间隔
persistRetryInterval: 500ms
#描述: 远端获取配置文件失败,兜底降级到本地文件缓存
fallbackToLocalCache: true
# 连接器配置,默认为北极星服务端
configConnector:
id: polaris-config
connectorType: polaris
#描述: 访问server的连接协议,SDK会根据协议名称会加载对应的插件
protocol: polaris
#描述: 发起连接后的连接超时时间
connectTimeout: 500ms
#描述: 与服务端发起远程请求超时时间
messageTimeout: 5s
#描述: 连接空闲时间(以最后一次消息交互时间来算),长连接模式下,当连接空闲超过一定时间后,SDK会主动释放连接
connectionIdleTimeout: 60s
#描述: server节点的切换周期,为了使得server的压力能够均衡,SDK会定期切换目标服务端节点
serverSwitchInterval: 10m
#描述:重连间隔时间
reconnectInterval: 500ms
#描述: 开启客户端鉴权后,需要填写用户/用户组的访问凭据
token: ""
#描述:连接器插件配置
plugin:
polaris:
#描述:GRPC客户端单次最大链路接收报文
#类型:int
#范围:(0:524288000]
maxCallRecvMsgSize: 52428800
# 配置过滤器
configFilter:
enable: true
chain:
# 启用配置解密插件
- crypto
plugin:
crypto:
# 配置解密插件的算法插件类型
entries:
- name: AES