Spring cloud 为非AWS数据中心设置Eureka

Spring cloud 为非AWS数据中心设置Eureka,spring-cloud,netflix-eureka,Spring Cloud,Netflix Eureka,我已与2位同行设置了Eureka,大约5分钟后,我在UI中看到以下消息: 紧急情况!EUREKA可能错误地声称实例在未启动时已启动。续订小于阈值,因此实例不会为了安全而过期 当我查看Eureka的一个运行实例的输出时,我看到: 2015-11-11 14:46:47.276 INFO 32748 --- [pool-5-thread-1] com.netflix.discovery.DiscoveryClient : The response status is 200 2015-11-

我已与2位同行设置了Eureka,大约5分钟后,我在UI中看到以下消息:

紧急情况!EUREKA可能错误地声称实例在未启动时已启动。续订小于阈值,因此实例不会为了安全而过期

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

2015-11-11 14:46:47.276 INFO 32748 --- [pool-5-thread-1] com.netflix.discovery.DiscoveryClient : The response status is 200 2015-11-11 14:56:17.427 WARN 32748 --- [eerNodesUpdater] c.n.eureka.cluster.PeerEurekaNodes : The replica size seems to be empty. Check the route 53 DNS Registry
我发现我的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/

可能是您缺少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/

大约5分钟后,我在web ui中看到了这一点。紧急情况!EUREKA可能错误地声称实例在未启动时已启动。续订小于阈值,因此实例不会为了安全而过期

我还验证了同龄人可以相互交谈。以下是我在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
这是我的申请表.yml,供两位同行使用

削皮者

偷窥者


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

对route53的引用只是在一条消息中。当没有对等设置时会发生这种情况。application.yml文件中的对等设置是否不正确?eureka03和eureka01可访问主机是否仍然存在对等问题。主机可以相互通信,但不复制eureka数据。我可以看到在eureka01上注册的服务和主机,在eureka03上缺失。在其中一个对等机上,我看到复制设置为false。我看到注册服务的类似日志条目。信息32313---[p-nio-80-exec-9]c.n.e.registry.AbstractInstanceRegistry:已注册实例EUREKA/eureka01:EUREKA:80,状态为UP(复制=false)
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
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/
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/