我在Docker群中设置服务发现有困难。
我在linux机器上创建了一个docker swarm:
docker swarm init --advertise-addr 192.172.123.4
然后创建了一个覆盖网络:
docker network create -d overlay my-overlay
然后添加了三个服务:
docker service create --replicas 1 --name eureka -p 8761:8761 --network my-overlay eureka
docker service create --replicas 1 --name zuul -p 8761:8761 --network my-overlay zuul
docker service create --replicas 1 --name testapp -p 8761:8761 --network my-overlay testapp
'eureka','zuul'和'testapp'都是Docker映像,它们在独立运行时都可以协同工作,并在eureka中注册,我可以通过zuul代理与'testapp'进行交互。
但是...
当我将它们作为服务群运行时,它们不向Eureka注册。当我访问192.172.123.4:8761的尤里卡页面时,我得到了:
当前在Eureka注册的实例:
无实例
如何完成?
这些是我的配置:
zuul:
server.port=8762
spring.application.name=zuul-server
eureka.instance.preferIpAddress=false
eureka.client.registerWithEureka=true
eureka.client.fetchRegistry=true
eureka.serviceurl.defaultzone=http://192.172.123.4:8761/
management.endpoints.web.exposure.include=*
testapp:
server.port=8799
spring.application.name=duplo
eureka.client.registerWithEureka=true
eureka.instance.preferIpAddress=false
eureka.serviceurl.defaultzone=http://192.172.123.4:8761/
尤里卡:
server:
port: 8761
eureka:
client:
registerWithEureka: false
preferIpAddress: false
fetchRegistry: false
答案 0 :(得分:1)
通过spring-boot运行zuul / eureka时,如果该端口已在使用中,则会出错。
尝试为zuul绑定-p 8762:8762,为testapp绑定-p 8799:8799。
不确定是否正在获取端口占用错误。
答案 1 :(得分:0)
我不确定自己在做什么错,但是我最终遵循了本教程,并且效果很好-对于那些在建立这样的堆栈时遇到问题的人,我建议将其作为一个好的起点: