-
Notifications
You must be signed in to change notification settings - Fork 87
/
Copy pathconf.template
377 lines (285 loc) · 11.1 KB
/
conf.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
#---------#
# 基础配置 #
#---------#
#当前server 名字
FPNN.server.name =
#Listen IP,为空则listen所有IP
FPNN.server.listening.ip =
#Listen Port
FPNN.server.listening.port =
#Listen backlog大小
FPNN.server.backlog.size =
#---------#
# 超时配置 #
#---------#
#Connection idle 时间,秒为单位
FPNN.server.idle.timeout = 60
#Server 给client push 请求 超时时间,秒为单位
FPNN.server.quest.timeout = 5
#作为client 使用的时候,请求其他server 超时时间,单位 秒
FPNN.client.quest.timeout = 5
#-------------#
# TCP 保活配置 #
#-------------#
# 是否默认启动 TCP 保活
FPNN.client.keepAlive.defaultEnable = false
# TCP 保活 ping 间隔。单位:秒
FPNN.client.keepAlive.pingInterval = 20
# TCP 无响应最大时间。单位:秒
# 默认 35 秒:20 秒的 ping 间隔,3次 timeout 为 5 秒的 ping 超时。
FPNN.client.keepAlive.elapseThreshold = 35
#-----------#
# IPv6 服务 #
#-----------#
FPNN.server.ipv6.listening.ip =
FPNN.server.ipv6.listening.port =
#-----------#
# HTTP 支持 #
#-----------#
#server 是否支持http Post/Get请求
FPNN.server.http.supported = false
#---------#
# 安全相关 #
#---------#
# 是否启用 ECC-AES 加密
# TCP & UDP 服务通用配置
FPNN.server.security.ecdh.enable = false
# TCP 服务配置项。当该项无配置时,才会读取 FPNN.server.security.ecdh.enable 的配置
FPNN.server.tcp.security.ecdh.enable = false
# UDP 服务配置项。当该项无配置时,才会读取 FPNN.server.security.ecdh.enable 的配置
FPNN.server.udp.security.ecdh.enable = false
# curve 取值: secp256k1, secp256r1, secp224r1, secp192r1
# TCP & UDP 服务通用配置
FPNN.server.security.ecdh.curve =
# TCP 服务配置项。当该项无配置时,才会读取 FPNN.server.security.ecdh.curve 的配置
FPNN.server.tcp.security.ecdh.curve =
# UDP 服务配置项。当该项无配置时,才会读取 FPNN.server.security.ecdh.curve 的配置
FPNN.server.udp.security.ecdh.curve =
# privateKey 指向 privateKey (binary format, not Hex) 的文件路径
# TCP & UDP 服务通用配置
FPNN.server.security.ecdh.privateKey =
# TCP 服务配置项。当该项无配置时,才会读取 FPNN.server.security.ecdh.privateKey 的配置
FPNN.server.tcp.security.ecdh.privateKey =
# UDP 服务配置项。当该项无配置时,才会读取 FPNN.server.security.ecdh.privateKey 的配置
FPNN.server.udp.security.ecdh.privateKey =
# 所有用户接口,是否只允许加密访问
# TCP & UDP 服务通用配置
FPNN.server.security.forceEncrypt.userMethods = false
# TCP 服务配置项。当该项无配置时,才会读取 FPNN.server.security.forceEncrypt.userMethods 的配置
FPNN.server.tcp.security.forceEncrypt.userMethods = false
# UDP 服务配置项。当该项无配置时,才会读取 FPNN.server.security.forceEncrypt.userMethods 的配置
FPNN.server.udp.security.forceEncrypt.userMethods = false
# SSL/TLS 相关
FPNN.server.tcp.ipv4.ssl.listening.port =
FPNN.server.tcp.ipv4.ssl.listening.ip =
FPNN.server.tcp.ipv6.ssl.listening.port =
FPNN.server.tcp.ipv6.ssl.listening.ip =
# certificate 与 PrivateKey 均为文件路径
FPNN.server.security.ssl.certificate =
FPNN.server.security.ssl.privateKey =
#---------#
# 日志相关 #
#---------#
#Server 是否支持统计,包括请求数,QPS等等,开启本项 会影响性能
FPNN.server.stat = true
#是否记录Server 收到的quest请求日志
FPNN.server.quest.log = false
#是否记录Server 的answer 日志
FPNN.server.answer.log = false
#是否记录server的slow日志,毫秒为单位
FPNN.server.slow.log = 0
#作为client的时候,是否记录请求日志
FPNN.client.quest.log = false
#作为client的时候,是否记录answer日志
FPNN.client.answer.log = false
#作为client的时候,是否记录 slow 日志
FPNN.client.slow.log = false
#原始客户端(原始TCP客户端和原始UDP客户端)的数据接收日志
FPNN.rawClient.receiving.log = false
#是否将状态信息定时写入日志(WARN 级别)
FPNN.server.status.logStatusInfos = false
#状态信息间隔多长时间写入一次(单位:秒)
FPNN.server.status.logStatusInterval = 60
# 日志服务器endpoint
# 默认为 unix:///tmp/fplog.sock
# 标准输出可用 std::cout,标准错误输出可用 std::cerr
FPNN.server.log.endpoint =
#日志服务器route,即本服务器标示
FPNN.server.log.route =
#日志级别, DEBUG,INFO,WARN,ERROR
FPNN.server.log.level = INFO
#---------#
# 系统相关 #
#---------#
#最大可打开句柄数
FPNN.server.rlimit.max.nofile = 100000
#Core 文件大小
FPNN.server.rlimit.core.size = 0
#线程堆栈大小, M 为单位
FPNN.server.rlimit.stack.size = 8
#显示指定机器信息
FP.server.domain =
FP.server.zone.name =
FP.server.region.name =
FP.server.local.ip4 =
FP.server.public.ip4 =
FP.server.local.ip6 =
FP.server.public.ip6 =
#指定机器所属平台,目前仅有aws,qingcloud, 默认aws
FP.server.host.platform =
#----------------#
# TCPEpollServer #
#----------------#
# TCP Server 按照以下顺序获取监听IPv4端口配置
FPNN.server.tcp.ipv4.listening.port =
FPNN.server.ipv4.listening.port =
FPNN.server.listening.port =
# TCP Server 按照以下顺序获取IPv4监听IP配置
FPNN.server.tcp.ipv4.listening.ip =
FPNN.server.ipv4.listening.ip =
FPNN.server.listening.ip =
# TCP Server 按照以下顺序获取监听IPv6端口配置
FPNN.server.tcp.ipv6.listening.port =
FPNN.server.ipv6.listening.port =
# TCP Server 按照以下顺序获取IPv6监听IP配置
FPNN.server.tcp.ipv6.listening.ip =
FPNN.server.ipv6.listening.ip =
# TCP Server 按照以下顺序获取Server 给client push 请求 超时时间,秒为单位
FPNN.server.tcp.quest.timeout =
FPNN.server.quest.timeout =
#----------------#
# UDPEpollServer #
#----------------#
#UDP Server 按照以下顺序获取监听IPv4端口配置
FPNN.server.udp.ipv4.listening.port =
FPNN.server.ipv4.listening.port =
FPNN.server.listening.port =
#UDP Server 按照以下顺序获取IPv4监听IP配置
FPNN.server.udp.ipv4.listening.ip =
FPNN.server.ipv4.listening.ip =
FPNN.server.listening.ip =
# UDP Server 按照以下顺序获取监听IPv6端口配置
FPNN.server.udp.ipv6.listening.port =
FPNN.server.ipv6.listening.port =
# UDP Server 按照以下顺序获取IPv6监听IP配置
FPNN.server.udp.ipv6.listening.ip =
FPNN.server.ipv6.listening.ip =
# UDP Server 按照以下顺序获取Server 给client push 请求 超时时间,秒为单位
FPNN.server.udp.quest.timeout =
FPNN.server.quest.timeout =
#=========================================#
# Extends 模块 #
#=========================================#
#------------#
# FPZKClient #
#------------#
# FPZKServer 地址列表。逗号或者空格分割
FPZK.client.fpzkserver_list =
# 项目名称
FPZK.client.project_name =
# 在 FPZKServer 中的项目 token
FPZK.client.project_token =
# 服务集群分组名称
FPNN.server.cluster.name =
# 是否启动订阅(集群变动实时通知)。否则 2 秒同步一次。
FPZK.client.subscribe.enable = true
# 本服务实例是否其他 region 可见
FPZK.client.sync.externalVisible = true
# 是否向 FPZKServer 汇报 ipv4、ipv6、domain、sslport、sslport6 (如果存在) 等信息
FPZK.client.sync.syncPublicInfo = false
# 是否向 FPZKServer 汇报当前机器连接总数,当前系统按 CPU 平均的负载和使用率
# 如果 def.mk 中,“CUDA_SUPPORT=true” 启用,则存在显卡的情况下,还会汇报当前机器各张显卡以下信息:
# 索引号、GPU 百分比使用率、显存百分比使用率、显存已用字节数、显存字节总数。
FPZK.client.sync.syncPerformanceInfo = false
# FPZK.client.sync.externalVisible = true 时,其他区域是否可用本服务的内网地址链接访问本服务
FPZK.client.sync.syncEndpoint = true
# 日志级别为 DEBUG 时,是否输出集群变动信息
FPZK.client.debugInfo.clusterChanged.enable = false
###############################################
# 以下参数除非了解其明确含义和影响,否则请不要随便配置 #
###############################################
FPNN.global.max.package.len =
FPNN.global.io.thread.min.size = cpuCount
FPNN.global.io.thread.max.size = cpuCount
#--------------#
# ClientEngine #
#--------------#
FPNN.client.iobuffer.chunk.size = 256
FPNN.client.max.event = 1000
FPNN.client.work.queue.max.size = 100000
FPNN.client.work.thread.min.size = cpuCount
FPNN.client.work.thread.max.size = cpuCount
FPNN.client.duplex.thread.min.size = 0
FPNN.client.duplex.thread.max.size = 0
#----------#
# TCP 相关 #
#----------#
FPNN.server.iobuffer.chunk.size = 256
FPNN.server.max.event = 10000
FPNN.server.max.connections = 500000
FPNN.server.perfect.connections = 100000
FPNN.server.http.closeAfterAnswered = false
#-------------------#
# TCP & UDP 通用配置 #
#-------------------#
FPNN.server.work.queue.max.size = 2000000
FPNN.server.work.thread.min.size = cpuCount
FPNN.server.work.thread.max.size = cpuCount
FPNN.server.duplex.thread.min.size = 0
FPNN.server.duplex.thread.max.size = 0
#----------#
# TCP 配置 #
#----------#
FPNN.server.tcp.work.queue.max.size =
FPNN.server.tcp.work.thread.min.size =
FPNN.server.tcp.work.thread.max.size =
FPNN.server.tcp.duplex.thread.min.size =
FPNN.server.tcp.duplex.thread.max.size =
#----------#
# UDP 配置 #
#----------#
FPNN.server.udp.work.queue.max.size =
FPNN.server.udp.work.thread.min.size =
FPNN.server.udp.work.thread.max.size =
FPNN.server.udp.duplex.thread.min.size =
FPNN.server.udp.duplex.thread.max.size =
# 当四元组因网络异常,被单端关闭后复用时,是否允许立刻复用
# 如果为 true, 则恶意构造四元组冲突包(带有 FirstPackage 标记的首包),将立刻打断已有的对应链接。
# 因此在非安全环境,该参数强烈建议为 false
# 注:随着后续版本改进,该配置参数可能被废弃
FPNN.server.udp.connectionReentry.replaceForAll = false
FPNN.server.udp.connectionReentry.replaceForPrivateIP = true
#---------#
# 系统相关 #
#---------#
FPNN.server.user = infras
FPNN.server.group = infras
FPNN.server.preset.signal = true
#--------------#
# UDP ARQ 相关 #
#--------------#
# 576: Internet/X25, 1500: Ethernet
# 1492: PPoE, 4352: FDDI
# Unit: bytes
FPNN.global.udp.mtu.internet = 576
FPNN.global.udp.mtu.lan = 1500
# Unit: milliseconds
FPNN.global.udp.arq.reAckInterval = 20
# Unit: milliseconds
FPNN.global.udp.arq.syncInterval = 50
FPNN.global.udp.disorderedSeq.tolerance.afterFirstPackageReceived = 10000
FPNN.global.udp.disorderedSeq.tolerance.beforeFirstPackageReceived = 500
# Unit: seconds
FPNN.global.udp.arq.heartbeatInterval = 20
FPNN.global.udp.arq.uncompletedSegment.maxCacheCount = 100
FPNN.global.udp.arq.uncompletedSegment.maxCacheSeconds = 300
FPNN.global.udp.arq.maxUntransmittedSeconds = 60
FPNN.global.udp.arq.urgentSync.triggeredThreshold = 280
# Unit: milliseconds
FPNN.global.udp.arq.urgentSync.minInterval = 20
FPNN.global.udp.arq.unconfiremedPackage.maxCount = 320
FPNN.global.udp.arq.maxSendCountPerConnectionSecond = 5000
FPNN.global.udp.arq.resentPerSecondLimitation = 640
FPNN.global.udp.arq.maxMsecToleranceBeforeFirstPackageReceived = 3000
FPNN.global.udp.arq.maxMsecToleranceBeforeValidPackageReceived = 20000
FPNN.global.udp.arq.maxToleranceCountBeforeValidPackageReceived = 1000