docker swarm集群中使用Eureka副本的微服务注册

docker swarm集群中使用Eureka副本的微服务注册,docker,microservices,netflix-eureka,Docker,Microservices,Netflix Eureka,如果我有一个用于Eureka服务发现的微服务,并且在docker-compose.yml中有5个副本,那么这5个Eureka容器将分布在swarm集群中可用的多个swarm节点上 我的问题是,当一个微服务想要向eureka注册时 它会在eureka服务器的配置中指定swarm集群中主节点的ip地址吗 当微服务以任何方式向eureka注册时,该注册是否会在swarm集群中的所有eureka容器中复制,因为谁知道swarm集群中的哪个eureka节点将为特定微服务提供服务 当微服务以任何方式向eur

如果我有一个用于Eureka服务发现的微服务,并且在docker-compose.yml中有5个副本,那么这5个Eureka容器将分布在swarm集群中可用的多个swarm节点上

我的问题是,当一个微服务想要向eureka注册时

  • 它会在eureka服务器的配置中指定swarm集群中主节点的ip地址吗

  • 当微服务以任何方式向eureka注册时,该注册是否会在swarm集群中的所有eureka容器中复制,因为谁知道swarm集群中的哪个eureka节点将为特定微服务提供服务

  • 当微服务以任何方式向eureka注册自身时,该注册是否会在所有eureka容器中复制

    我从未亲自测试过,但我认为这种情况会发生。注册中心自行联系并共享所有当前注册的微服务

    谁知道swarm集群中的哪个eureka节点将为特定的微服务提供服务

    您的微服务在其
    应用程序中有一个唯一的名称。properties
    允许其他微服务向其发送HTTP请求,但您无法在java中控制该机制,因此我希望它联系最合适的

    它会在eureka服务器的配置中指定swarm集群中主节点的ip地址吗

    我尝试了好几次设置主机名,让microservice联系eureka 使用基于容器的主机名,但这不起作用。我使用基本图像+bash和。我用docker compose运行一切
    
    
    请记住,这是告诉microservices eureka在哪里的配置服务器。最后,我在配置服务器中添加了一个
    bash
    脚本,从
    jar
    文件中提取
    application.properties
    ,放入注册表的IP,并将更新后的
    application.properties
    重写到
    jar

    中。我不明白您答案的最后一部分。您在docker中运行的映像构成了一个以oraclejdk8为基础映像的映像,该服务的用户到底是什么?看起来像一个独立的服务。它又是用来做什么的?我用a在我的基本映像中添加我的微服务:在master上,jenkins执行我们的所有测试,创建微服务的docker映像(配置、注册表、zuul……和我们的5个业务微服务),并将它们推送到docker注册表中。docker compose引用存储在docker注册表中的这些图像,因此我们可以这样启动堆栈