Skip to content

按需启动服务配置

为方便分布式部署和容器化场景,KBEngine Nex 支持多套配置文件,按需选择启动配置。

使用场景

  • 开发环境:使用 kbengine_dev.xml 配置本地调试参数
  • 生产环境:使用 kbengine_prod.xml 配置正式服参数
  • k8s 容器编排:通过环境变量注入不同配置,无需修改镜像

配置文件

在项目资产库的 res/server/ 目录下,按 kbengine_{name}.xml 命名规则创建配置文件,引擎会根据启动参数自动匹配:

文件示例用途
kbengine.xml默认配置
kbengine_dev.xml开发环境
kbengine_prod.xml生产环境
kbengine_staging.xml预发布环境
kbengine_{自定义}.xml任意自定义环境

{name} 可以是任意字符串,只要与启动时的 --prop 参数一致即可。

启动方式

按环境选择

通过 --prop 参数指定环境名,引擎会自动加载 kbengine_{name}.xml

bash
# 使用开发环境配置
./start_server.sh --prop=dev

# 使用生产环境配置
./start_server.sh --prop=prod

# 使用预发布环境配置
./start_server.sh --prop=staging

# 自定义环境名,对应 kbengine_test01.xml
./start_server.sh --prop=test01

指定配置文件路径

通过 --location 参数直接指定配置文件路径:

bash
# 指定自定义路径的配置文件
./start_server.sh --location=/path/to/custom/kbengine.xml

k8s 部署示例

在 k8s 中,从文件创建 ConfigMap 并挂载:

bash
# 从文件创建 ConfigMap(xml 内容较多,直接用文件)
kubectl create configmap kbengine-config \
  --from-file=kbengine_prod.xml=./res/server/kbengine_prod.xml
yaml
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
      - name: kbengine
        args: ["--prop=prod"]
        volumeMounts:
        - name: config
          mountPath: /KBE/server_assets/res/server
      volumes:
      - name: config
        configMap:
          name: kbengine-config

启动脚本适配

需要在启动脚本中将参数传递给 machine 进程:

bash
# 在 start_server.sh 中
start $KBE_BIN_PATH/machine.exe --cid=1000 --gus=1 --prop=$PROP_ENV

这样所有由 machine 启动的子进程都会继承相同的配置环境。