在docker swarm集群中使用Eureka复制品进行微服务注册

时间:2017-04-27 18:05:23

标签: docker microservices netflix-eureka

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

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

  1. 它会在eureka服务器的配置中指定群集群集中主节点的IP地址吗?

  2. 当微服务以无论哪种方式向eureka注册时,该注册表是否会被群集群集中的所有eureka容器复制,因为谁知道群集群中的哪个eureka节点将服务于特定的微服务。

1 个答案:

答案 0 :(得分:1)

  

当微服务以无论哪种方式向eureka注册时,该注册表是否会在所有eureka容器中复制

从未经过我自己的测试,但我认为会发生这种情况。注册管理机构与自己联系并分享所有当前注册的微服务。

  

谁知道群集群中的哪个eureka节点将服务于特定的微服务

您的微服务在其docker-compose中有一个唯一的名称,允许其他微服务向其发送HTTP请求,您不能在java中控制该机制,所以我希望它与最合适的联系。

  

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

我尝试了几次设置主机名让微服务联系eureka  使用基于容器的主机名但不起作用。我使用frolvlad/alpine-oraclejdk8作为基本图片+ bash和wait-for-it.sh。我用bash运行所有内容 请记住,这是配置服务器告诉微服务eureka在哪里。我最终在配置服务器中添加application.properties脚本以从jar文件中提取application.properties,放入注册表的IP,并将更新后的jar重写为echo "<td><a href=\"Fullentry.php?rowid=".$row['Entry']."\">ENTRY</a></td>";