2

我已经用 2 个同伴设置了 Eureka,大约 5 分钟后,我看到这条消息出现在 UI 中:

紧急情况!EUREKA 可能不正确地声称实例已启动,但实际上并未启动。续订少于阈值,因此为了安全起见,实例不会过期。

当我查看 Eureka 正在运行的实例之一的输出时,我看到:

2015-11-11 14:46:47.276 INFO 32748 --- [pool-5-thread-1] com.netflix.discovery.DiscoveryClient:响应状态为 200
2015-11-11 14:56:17.427 WARN 32748 --- [eerNodesUpdater] cneureka.cluster.PeerEurekaNodes:副本大小似乎为空。检查路由 53 DNS 注册表

如果我理解正确,Eureka 认为它是在 AWS 上配置的。我找不到任何东西application.yml来表明这一点。

关于我在配置中缺少的任何想法?

server:
  port: 80

eureka:
  datacenter: boston
  instance:
    hostname: eureka03.domain.com
  client:
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
---
eureka:
  instance:
    hostname: eureka01.domain.com
  client:
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
4

4 回答 4

2

我发现我的 application.yml 有问题来设置对等点。如果有人遇到同样的问题,这是正确的 application.yml。

peer1 上的 application.yml

server:
  port: 80

eureka:
  datacenter: boston
  instance:
    hostname: eureka01
  client:
    serviceUrl:
      defaultZone: http://eureka03/eureka/

peer2 上的 application.yml

server:
  port: 80

eureka:
  datacenter: boston
  instance:
    hostname: eureka03
  client:
    serviceUrl:
      defaultZone: http://eureka01/eureka/
于 2015-11-12T14:55:55.177 回答
0

大约 5 分钟后,我在 web ui 中看到了这个。紧急情况!EUREKA 可能不正确地声称实例已启动,但实际上并未启动。续订少于阈值,因此为了安全起见,实例不会过期。

我还验证了同行可以相互交谈。这是我在尤里卡输出中看到的内容。

2015-11-13 09:08:39.928  WARN 860 --- [p-nio-80-exec-2] c.n.e.registry.AbstractInstanceRegistry  : DS: Registry: lease doesn't exist, registering resource: EUREKA - eureka03:eureka:80
2015-11-13 09:08:39.928  WARN 860 --- [p-nio-80-exec-2] c.n.eureka.resources.InstanceResource    : Not Found (Renew): EUREKA - eureka03:eureka:80
2015-11-13 09:08:40.451  INFO 860 --- [p-nio-80-exec-4] c.n.e.registry.AbstractInstanceRegistry  : Registered instance EUREKA/eureka03:eureka:80 with status UP (replication=true)
2015-11-13 09:08:43.066  WARN 860 --- [ka01.ctct.net-6] c.n.eureka.cluster.ReplicationTask       : The replication of task EUREKA/eureka01:eureka:80:Heartbeat@eureka01 failed with response code 404
2015-11-13 09:08:43.066  WARN 860 --- [ka01.ctct.net-6] c.netflix.eureka.cluster.PeerEurekaNode  : EUREKA/eureka01:eureka:80:Heartbeat@eureka01: missing entry.
2015-11-13 09:08:43.066  WARN 860 --- [ka01.ctct.net-6] c.netflix.eureka.cluster.PeerEurekaNode  : EUREKA/eureka01:eureka:80:Heartbeat@p2-dev-eureka01.ctct.net: cannot find instance id eureka01:eureka:80 and hence replicating the instance with status UP

这是我的两个同行的 application.yml

对等体1

server:
  port: 80

eureka:
  datacenter: bedford
  instance:
    hostname: eureka01
    metadataMap:
      instanceId: EUREKA01_${spring.application.name}:${spring.application.instance_id:${random.value}}
  client:
    serviceUrl:
      defaultZone: http://eureka03/eureka/

对等体2

server:
  port: 80

eureka:
  datacenter: bedford
  instance:
    hostname: eureka03
    metadataMap:
      instanceId: EUREKA03_${spring.application.name}:${spring.application.instance_id:${random.value}}
  client:
    serviceUrl:
      defaultZone: http://eureka01/eureka/
于 2015-11-13T14:25:14.957 回答
0

可能是您缺少 instanceId 来帮助 eureka 识别节点:

eureka:
  instance:
    hostname: app56.test.online.eniro
    metadataMap:
      instanceId: EUREKA01_${spring.application.name}:${spring.application.instance_id:${random.value}}
  client:
    serviceUrl:
      defaultZone: http:///eureka01/eureka/
于 2015-11-13T07:19:19.753 回答
0

我试图在我的 localhost 上运行 3 个 eureka 服务器,但是所有 3 个的主机名都是 localhost 导致上述错误。当我通过在主机文件中创建主机名条目来更改它时,错误已解决

于 2016-04-10T14:27:48.780 回答