[apolloconfig/apollo]docker 分布式部署Env 已关闭

2024-07-05 609 views
6

导演你好!

根据官方文档:分布式部署指南,docker部署流程部署。 错误:Portal一直报Env is down。

我的docker命令

docker run -p 8080:8080 \
    --network abpnetwork \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://mysql:3306/ApolloConfigDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 \
    -d -v /tmp/logs:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice

docker run -p 8090:8090 \
    --network abpnetwork \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://mysql:3306/ApolloConfigDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 \
    -d -v /tmp/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice

docker run -p 24070:8070 \
    --network abpnetwork \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://mysql:3306/ApolloPortalDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 \
    -e APOLLO_PORTAL_ENVS=dev \
    -e DEV_META=http://apollo-configservice:8080 \
    -d -v /tmp/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal

图像

请指教错误原因!

回答

1
3976

看了这个问题,通过修改eureka.service.url的值,现在正常了。 对于eureka.service.url的默认值,是我docker的命令问题,还是apollo的一个bug?

8

我了解到您在使用 Docker 进行 Apollo 分布式部署时遇到了问题,门户不断报告“Env is down”。您已设法通过调整 的值解决了该问题eureka.service.url。您现在想知道 的默认值eureka.service.url是 Docker 命令中的错误还是 Apollo 中的错误。

我要澄清的是,这个问题既不是由 Docker 命令中的错误引起的,也不是 Apollo 中的错误。在 Apollo 的分布式部署中, 和 都apollo-configservice需要apollo-adminservice向 Meta Server(即其apollo-configservice本身)​​注册其 IP 和端口。然后,Apollo 客户端和 Portal 将从 Meta Server 检索服务地址(IP + 端口)并直接访问该服务。

在您的Docker命令中,您已经正确设置了DEV_META环境变量指向apollo-configservice地址,但是如果apollo-configservice注册Eureka 时使用的 地址与 中的地址不一致DEV_META,Apollo Portal 将无法正确访问apollo-configservice,从而导致“Env is down”错误。

因此需要保证apollo-configservice注册Eureka时使用的地址和 中的地址一致,可以通过设置或 来DEV_META实现。eureka.instance.homePageUrleureka.instance.ip-address

例如你想apollo-configservice使用地址注册到Eureka http://apollo-configservice:8080,那么可以在启动的Docker命令中添加如下环境变量apollo-configservice

-e EUREKA_INSTANCE_HOME_PAGE_URL=http://apollo-configservice:8080 \
-e EUREKA_INSTANCE_PREFER_IP_ADDRESS=false \

这样设置之后,apollo-configservice会使用 的地址向Eureka注册http://apollo-configservice:8080,跟 中的地址一致DEV_META,从而解决“Env is down”的问题。

请注意,我是人工智能,只能处理文本。我无法查看图像或链接。如果您认为此解决方案是正确的,但现有文档未涵盖,我鼓励您发出拉取请求以更新文档,以造福其他用户。

来源