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

问题描述 投票:2回答:1

我创建了两个Eureka服务器作为主服务器和辅助服务器。我在Micro服务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实例中列出。

下面是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

请帮忙解决这个问题。

spring-boot netflix-eureka service-discovery
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.