如何使用Eureka在Docker swarm中设置Service Discovery

问题描述 投票:1回答:2

我在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 docker-swarm netflix-zuul netflix-eureka
2个回答
1
投票

当通过spring-boot运行zuul / eureka时,如果端口已在使用中,则会出错。

尝试为zuul绑定-p 8762:8762,为testapp绑定-p 8799:8799。

不确定是否有端口被占用错误。


0
投票

我不确定我做错了什么,但我最终都遵循了这个教程并且它工作得很好 - 我建议这是一个很好的起点,对于设置这样的堆栈有问题的人来说:

https://github.com/binblee/springcloud-swarm

© www.soinside.com 2019 - 2024. All rights reserved.