我在docker swarm中设置服务发现时遇到了困难。
我在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页面时,我得到了这个:
目前在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=*
测试应用:
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
当通过spring-boot运行zuul / eureka时,如果端口已在使用中,则会出错。
尝试为zuul绑定-p 8762:8762,为testapp绑定-p 8799:8799。
不确定是否有端口被占用错误。
我不确定我做错了什么,但我最终都遵循了这个教程并且它工作得很好 - 我建议这是一个很好的起点,对于设置这样的堆栈有问题的人来说: