Eureka 副本不可用

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

我在配置尤里卡副本时遇到问题:

尤里卡服务:

@EnableEurekaServer
@SpringBootApplication
public class DiscoveryService {

    public static void main(String[] args) {
        SpringApplication.run(DiscoveryService.class, args);
    }
}

bootstrap.properties

spring.application.name=discovery
spring.cloud.config.uri=http://localhost:8888

我还有两个 yml 文件

对于在 8761 上运行的服务器 1

eureka.client.serviceUrl.defaultZone:http://localhost:8762/eureka/
eureka.client.registerWithEureka:false
eureka.client.fetchRegistry:false

对于在 8762 上运行的服务器 2

eureka.client.serviceUrl.defaultZone:http://localhost:8761/eureka/
eureka.client.registerWithEureka:false
eureka.client.fetchRegistry:false

我可以输入两个仪表板,但我看到两个实例都有这个:

registered-replicas http://localhost:8761/eureka/
unavailable-replicas    http://localhost:8761/eureka/,
available-replicas

这是为什么?

spring-boot spring-cloud netflix-eureka
2个回答
7
投票

我猜你的尤里卡没有用

localhost
作为主机名注册自己,所以这就是为什么你在尤里卡仪表板中看到它们不可用。 Eureka 经常使用这种模式,它将服务 url 与调用者主机名相匹配来确定复制上下文。

对等 eureka 节点从 eureka 服务 URL 列表(

com.netflix.eureka.cluster.PeerEurekaNodes::resolvePeerUrls
密钥或基于 DNS)中获取。随后,通过使用主机名获取副本状态,将此列表与
eureka.client.serviceUrl
中当前注册的 eureka 应用程序进行匹配。

由于您的应用程序很可能没有向

com.netflix.eureka.util.StatusUtil::getStatusInfo

注册自身,因此它将被添加到不可用的副本中。

    


0
投票
此链接

了解客户端和服务器与对等点的整个设置

© www.soinside.com 2019 - 2024. All rights reserved.