如何在AWS ECS上的Eureka Client中寻址Eureka Server

时间:2019-01-03 08:43:06

标签: amazon-web-services amazon-ecs netflix-eureka

您如何在AWS ECS上寻址Eureka服务器?

我的要求/当前设置

  • Eureka Server作为启动类型EC2部署为ECS服务
    • 启用了服务发现(来自ECS),它为Eureka服务器(例如eureka.local)创建Route53 DNS条目
  • 仅Eureka服务器 用于中间层服务,因此没有Eureka Server的外部地址 需要/想要的
  • Eureka Server部署在一个区域中的多个可用区中
  • Eureka客户端需要访问Eureka服务器
  • 我想使用内置的Eureka功能,例如AWS-Zone亲缘关系,这意味着我想让Eureka客户端首先在其自己的AZ中与Eureka Server进行对话,并且仅当另一个本身的可用区中不可用。

从Route53通过DNS寻址

设置eurekaServerDNSName属性时,出现以下异常,因为它找不到DNS条目的txt记录。是否也可以创建TXT记录?如果是,如何设置ECS服务发现?

eurekaServerDNSName: service-registry.local

例外:

Caused by: java.lang.RuntimeException: Failed to initialize DiscoveryClient!

ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'eurekaAutoServiceRegistration'; nested exception is java.lang.NullPointerException

c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via DNS: txt.eu-west-1.service-registry.local

此外,当我想在Route53中为服务创建txt记录时,还会收到错误消息,提示我实际上无法更改此记录,例如“只能通过servicediscovery.amazonaws管理hostedzone / yyy资源。 com”。因此,我想知道如何将DNS配置与AWS ECS一起用于Eureka配置。

替代弹性IP

由于弹性IP(EIP)公开了公共IP,因此这对我们来说是不可能的解决方案。

0 个答案:

没有答案