Mon*_*ont 4 spring-boot spring-cloud netflix-eureka
我在配置尤里卡副本时遇到问题:
尤里卡服务:
@EnableEurekaServer
@SpringBootApplication
public class DiscoveryService {
public static void main(String[] args) {
SpringApplication.run(DiscoveryService.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
bootstrap.properties
spring.application.name=discovery
spring.cloud.config.uri=http://localhost:8888
Run Code Online (Sandbox Code Playgroud)
我还有两个 yml 文件
对于在 8761 上运行的服务器 1
eureka.client.serviceUrl.defaultZone:http://localhost:8762/eureka/
eureka.client.registerWithEureka:false
eureka.client.fetchRegistry:false
Run Code Online (Sandbox Code Playgroud)
对于在 8762 上运行的服务器 2
eureka.client.serviceUrl.defaultZone:http://localhost:8761/eureka/
eureka.client.registerWithEureka:false
eureka.client.fetchRegistry:false
Run Code Online (Sandbox Code Playgroud)
我可以输入两个仪表板,但我看到两个实例都有:
registered-replicas http://localhost:8761/eureka/
unavailable-replicas http://localhost:8761/eureka/,
available-replicas
Run Code Online (Sandbox Code Playgroud)
这是为什么 ?
我猜您的尤里卡没有将自己注册localhost为主机名,因此这就是您在尤里卡仪表板中看到它们不可用的原因。Eureka 经常使用这种模式,它将服务 url 与调用者主机名相匹配来确定复制上下文。
com.netflix.eureka.cluster.PeerEurekaNodes::resolvePeerUrls对等尤里卡节点是从尤里卡服务 URL 列表中获取的(eureka.client.serviceUrl基于密钥或 DNS)。稍后,com.netflix.eureka.util.StatusUtil::getStatusInfo通过使用主机名获取副本状态,将此列表与当前注册的尤里卡应用程序进行匹配。
由于您的应用程序很可能不会向 注册localhost,因此它将被添加到不可用的副本中。
| 归档时间: |
|
| 查看次数: |
13094 次 |
| 最近记录: |