gpt4 book ai didi

当作为 Docker 容器运行时,Java Spring 不会与 Consul 对话

转载 作者:行者123 更新时间:2023-11-30 06:11:12 26 4
gpt4 key购买 nike

我正在尝试解决我认为是运行微服务的常见用例。在这种情况下,我正在使用 spring cloud 应用程序测试 consul。我正在尝试以两种不同的方式测试领事。第一个在 docker 容器中运行,另一个在 docker 主机上运行。然后我试图启动一个 spring 云容器,它将与任一领事示例进行对话。

当 spring cloud 应用程序作为 docker 容器运行时,我无法让 spring cloud 应用程序与 consul 对话。当 spring cloud 应用程序以主机网络模式运行时,它可以解析本地主机端口,但如果我希望运行图像的多个实例,这不是一个可接受的解决方案。

将两个服务作为容器运行时,我的 docker compose 文件示例如下所示。在这里,我试图通过环境变量在 spring cloud 中设置 consul uri,但是无法使用各种配置让它工作。如果有人能指出这些功能协同工作的示例,那将非常有帮助。

 consul1:
image: progrium/consul
ports:
- "8400:8400"
- "8500:8500"
- "8600:53/udp"
- "8600:53/tcp"
environment:
GOMAXPROCS: 100
entrypoint: "/bin/consul"
hostname: consul
command: agent -log-level=debug -server -config-dir=/config -bootstrap -ui-dir /ui

simpletest:
build: simpletest
hostname: simpletest
environment:
JAVA_OPTS: "-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n -Dspring.cloud.consul.host=consul1"
ports:
- 39041:7051
- 39052:7055
# d2fdockerroot_consul1_1 consul
# links:
# - consul1

最佳答案

这里有一个啤酒厂系统的例子 - https://github.com/spring-cloud-samples/brewery .其中一个文件是用于 CONSUL 的 docker-compose 文件。

https://github.com/spring-cloud-samples/brewery/blob/master/docker-compose-CONSUL.yml

查看代码库中的所有 application-consul.yaml 文件,了解如何设置 Spring Boot 应用程序以与 consul 对话。

示例:https://github.com/spring-cloud-samples/brewery/blob/master/aggregating/src/main/resources/application-consul.yaml

如有任何问题,请写在这里或转到 spring-cloud gitter https://gitter.im/spring-cloud/spring-cloud

关于当作为 Docker 容器运行时,Java Spring 不会与 Consul 对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34439201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com