kimserver 配置文件用的是 json 文件(config.json),保存于 bin 目录下(github)。
json 数据结构优点很多,缺点也不少(例如不能添加注释),文章主要解析配置文件内容。
1. 配置内容
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
{
"server_name": "kim-gate", # 服务器名称。
"worker_cnt": 1, # 子进程个数,因为 kimserver 是多进程框架,类似 nginx。
"node_type": "gate", # 节点类型。微服务,可以定义不同节点类型,不同节点间可以相互通信。
"node_host": "127.0.0.1", # 服务集群内部通信 host。
"node_port": 3344, # 服务集群内部通信端口。
"gate_host": "127.0.0.1", # 服务对外开放 host。(对外部客户端或者第三方服务。)
"gate_port": 3355, # 服务对外开放端口。
"gate_codec": "protobuf", # 服务对外协议类型。目前暂时支持两种协议类型:protobuf / http。
"keep_alive": 30, # 服务对外连接保活有效时间。
"log_path": "kimserver.log", # 日志文件。
"log_level": "info", # 日志等级。(trace / debug / notice / warning / err / crit 等。)
"modules": [ # 业务功能插件,动态库数组。
"module_test.so"
],
"redis": { # redis 连接池配置,支持配置多个。
"test": { # redis 配置节点,支持配置多个。
"host": "127.0.0.1", # redis 连接 host。
"port": 6379 # redis 连接 port。
}
},
"database": { # mysql 数据库连接池配置。
"test": { # mysql 数据库配置节点,支持配置多个。
"host": "127.0.0.1", # mysql host。
"port": 3306, # mysql port。
"user": "root", # mysql 用户名。
"password": "root123!@#", # mysql 密码。
"charset": "utf8mb4", # mysql 字符集。
"max_conn_cnt": 5 # mysql 连接池最大连接数。
}
},
"zookeeper": { # zookeeper 中心节点管理配置。用于节点发现,节点负载等功能。
"servers": "127.0.0.1:2181", # redis 服务连接信息。
"log_path": "zk.log", # zookeeper-client-c 日志。
"nodes": { # 节点发现配置。
"root": "/kimserver/nodes", # 节点发现根目录,保存了各个节点信息,每个节点启动需要往这个目录注册节点信息。
"subscribe_node_type": [ # 当前节点关注的其它节点类型数组。用于集群里,节点之间相互通信。填充信息可以根据上面 node_type 配置。
"gate", # 接入节点类型。
"logic" # 逻辑节点类型。
]
},
"payload": { # zookeeper 节点负载信息。节点会定时刷新(1次/s),同步当前节点负载。
"root": "/kimserver/payload" # 节点发现根目录。
}
}
}