PAI-Rec 引擎配置热加载
PAI-Rec 运行离不开灵活的配置,之前的做法都是配置文件与代码进行打包编译出镜像,然后在 EAS 上进行部署。如果只是更新配置的话,也需要重新编译进行,然后进行部署。频繁的部署会对线上服务造成一定的影响。借助于配置中心的配置功能,PAI-Rec 引擎会动态的热加载最新的配置而无需重新发布服务。
前提
熟悉 PAI-Rec 引擎的相关配置,参考配置总览。
搭建配置中心,相关部署参考部署。
熟悉配置中心的 PAI-Rec 配置管理功能,参考pairec 推荐引擎配置管理。
运行引擎服务
在部署到 EAS 之前会测试服务,之前测试服务这样运行
PAIREC_ENVIRONMENT=prepub ./pairec-demo --config=conf/config.json.production -alsologtostderr
如果需要配置的热加载功能,需要这样运行
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 部署
详细的服务部署参考部署服务。这里需要修改下 service.json。 需要注意的是, ABTEST_HOST 需要配置的 VPC 地址。
{
"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"
}