将多个Eureka主机配置为逗号分隔时未注册服务

时间:2018-12-10 15:27:32

标签: spring-boot netflix-eureka service-discovery

我已经创建了两个Eureka服务器作为主服务器和辅助服务器。我已经在Micro services bootstrap.yml中配置了我的服务URL,如下所示。

spring:
  application:
    name: ilpproxy
# Discovery Server Access
eureka:
  client:
    serviceUrl:
      defaultZone: http://10.83.134.39:8761/eureka/,http://10.83.143.221:8761/eureka/
  cloud:
    config:
      uri: ${vcap.services.${PREFIX:}configserver.credentials.uri:http://user:password@localhost:8888}

我的服务仅在主要Eureka中注册,未在次要中列出。如果我将主Eureka配置为第一个值,则服务将在两个Eureka实例中列出。

下面是尤里卡的application.yml

server:
 port: 8761
security:
 user:
   password: ${eureka.password} # Don't use a default password in a real app

info:
 component: Discovery Server

logging:
 level:
   root: WARN
   com.pearson: WARN
   com.netflix.hystrix: WARN
 file: /data/logs/eureka.log

eureka:
 client:
   registerWithEureka: false
   fetchRegistry: false
   serviceUrl:
     defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
 server:
   waitTimeInMsWhenSyncEmpty: 0
   enableSelfPreservation: false
 password: ${SECURITY_USER_PASSWORD:password}
 instance:
   hostname: 127.0.0.1

---
spring:
 profiles: peer # not standalone
eureka:
 instance:
   hostname: 127.0.0.1
 client:
   registerWithEureka: true
   fetchRegistry: true
   serviceUrl:
     defaultZone: http://user:${eureka.password}@127.0.0.1:8761/eureka/

---
spring:
 profiles: other # not standalone
server:
 port: 8762
eureka:
 instance:
   hostname: 127.0.0.1
   nonSecurePort: ${server.port}
 client:
   serviceUrl:
     defaultZone: http://user:${eureka.password}@127.0.1.1:8761/eureka/

---
spring:
 profiles: local # connect to remote peer
eureka:
 instance:
   hostname: ${localhost.hostname:${localhost.ngrok}.ngrok.com}
 client:
   registerWithEureka: true
   fetchRegistry: true
   serviceUrl:
     defaultZone: http://user:${eureka.password}@${PREFIX:}eureka.cfapps.io/eureka/

---
spring:
 profiles: zone_d # connect to remote peer
server:
 port: 8761
eureka:
 client:
   registerWithEureka: true
   fetchRegistry: true
   serviceUrl:
     defaultZone: http://10.83.143.221:8761/eureka/,http://10.83.134.39:8761/eureka/
 server:
  waitTimeInMsWhenSyncEmpty: 0
 password: ${SECURITY_USER_PASSWORD:password}

logging:
 level:
   root: WARN
   com.pearson: WARN
   com.netflix.hystrix: WARN
 file: /data/logs/eureka.log

请帮助解决此问题。

1 个答案:

答案 0 :(得分:3)

问题出在Eureka配置中。由于用于Spring-boot 1.0的先前配置,对等感知无法正常运行。如下所示更正application.yml解决了该问题。下面的设置要求每个Eureka节点相互注册,以使对等端意识正常运行。

server:
  port: 8761
security:
  user:
    password: ${eureka.password} # Don't use a default password in a real app

info:
  component: Discovery Server

logging:
  level:
    root: INFO
    com.pearson: INFO
    com.netflix.hystrix: WARN
  file: /data/logs/eureka.log

eureka:
  client:
    serviceUrl:
      defaultZone: http://10.83.104.765:8761/eureka/
  server:
    waitTimeInMsWhenSyncEmpty: 0
    enableSelfPreservation: false

---
spring:
  profiles: zone_d # connect to remote peer
server:
  port: 8761
eureka:
  client:
    serviceUrl:
      defaultZone: http://10.83.33.109:8761/eureka/
  server:
   waitTimeInMsWhenSyncEmpty: 0
   enableSelfPreservation: false