Artifactory One Model升级失败:Apollo服务启动异常求助
从日志来看,Apollo Rover(Supergraph构图工具)已成功完成Supergraph的生成与发布,但Apollo Router并未正常启动,导致http://localhost:8074/health?ready请求被拒绝。以下是针对性排查步骤:
查看Apollo Router专属日志
当前日志仅包含Rover的运行信息,缺少Router本身的启动日志。进入Artifactory容器,检查One Model相关日志目录(通常为/var/opt/jfrog/artifactory/log/onemodel/),查找Router启动时的报错信息,比如配置加载失败、依赖缺失等。验证端口8074的监听状态
在容器内执行命令:netstat -tulpn | grep 8074 # 或使用ss命令 ss -tulpn | grep 8074确认端口是否被其他进程占用,或Apollo Router是否已在监听该端口。
检查文件与目录权限
Rover已成功生成Supergraph文件,但Apollo Router可能因权限问题无法读取该文件。执行以下命令检查权限:ls -ld /var/opt/jfrog/artifactory/work/onemodel/ ls -l /var/opt/jfrog/artifactory/work/onemodel/composition-*/*.graphqls确保目录及文件的所有者为Artifactory运行用户(通常为
jfrog),权限设置合理(如755/644)。核查One Model配置参数
检查Artifactory系统配置中与One Model/Apollo相关的参数:- 登录Artifactory UI,进入
Admin > System Configuration,查找One Model相关配置项,确认端口8074未被自定义修改或禁用。 - 查看容器内的
/var/opt/jfrog/artifactory/etc/system.yaml文件,检查是否存在Apollo Router相关的配置错误。
- 登录Artifactory UI,进入
手动启动Apollo Router测试
找到容器内Apollo Router的可执行文件路径(通常位于Artifactory安装目录的onemodel/router子目录),手动执行启动命令并观察输出:./router --supergraph /var/opt/jfrog/artifactory/work/onemodel/composition-<你的ID>/__supergraph.graphqls --port 8074直接查看启动时的报错信息,定位具体问题。
检查容器网络配置
若使用Docker Compose部署,确认容器网络模式是否允许内部访问localhost:8074。若采用自定义网络,需确保Artifactory服务配置中Apollo Router的地址指向正确(如容器内部localhost而非宿主机地址)。
内容的提问来源于stack exchange,提问作者RyanD

