# PAI-Rec 引擎配置热加载 PAI-Rec 运行离不开灵活的配置,之前的做法都是配置文件与代码进行打包编译出镜像,然后再 EAS 上进行部署。如果只是更新配置的话,也需要重新编译进行,然后进行部署。频繁的部署会对线上服务造成一定的影响。借助于配置中心的配置功能,PAI-Rec 引擎会动态的热加载最新的配置而无需重新发布服务。 ## 前提 1. 熟悉 PAI-Rec 引擎的相关配置,参考[这里](../config/overview.md)。 2. 搭建配置中心,相关部署参考[这里](../ab/deploy.md)。 3. 熟悉配置中心的 PAI-Rec 配置管理功能,参考[这里](../ab/pairec_config.md)。 ## 运行引擎服务 在部署到 EAS 之前会测试服务,之前测试服务这样运行 ``` PAIREC_ENVIRONMENT=prepub ./pairec-demo --config=conf/config.json.production -alsologtostderr ``` 如果需要配置的热加载功能,需要这样运行 ```bash PAIREC_ENVIRONMENT=daily CONFIG_NAME=pairec_config ABTEST_HOST=http://xxxx/api/predict/pairec_experiment ABTEST_TOKEN=xxx ./pairec-demo --alsologtostderr ``` 从这里看到无需指定配置文件,但是有几个环境变量需要设置 * PAIREC_ENVIRONMENT 运行环境,取值为 日常-daily, 预发-prepub, 生产-product。 这里的环境需要与配置中心的的配置的环境对应起来 * CONFIG_NAME 配置名称, 与配置中心里的配置名称对应 * ABTEST_HOST 配置中心部署在EAS 上的地址 * ABTEST_TOKEN 配置中心部署在 EAS 的访问 Token ### EAS 部署 详细的服务部署参考[这里](../deploy/eas.md)。这里需要修改下 service.json。 需要注意的是, ABTEST_HOST 需要配置的 vpc 地址。 ```bash { "containers":[ { "image":"mybigpai-registry-vpc.cn-beijing.cr.aliyuncs.com/mybigpai/pairec_base:1.0.0", "env": [ { "name":"PAIREC_ENVIRONMENT", "value":"product" }, { "name":"CONFIG_NAME", "value":"pairec_config" }, { "name":"ABTEST_HOST", "value":"xxx" }, { "name":"ABTEST_TOKEN", "value":"xxx" } ], "command":"/usr/bin/rec_entrypoint.sh", "port":8000 } ], "dockerAuth":"xxxx", "metadata":{ "cpu":4, "instance":1, "memory":8000, "resource":"xxxx" }, "name":"pairec_eas_test" } ```