2016-07-08 3 views
0

Я пытаюсь работать с отказом при работе клиента Eureka и получаю следующее исключение. Eureka server1 выключается, и я хочу, чтобы он перешел на сервер Eureka2. Приложение реализует, что сервер 1 работает, и пытается использовать переход на другой ресурс, но попадает в это место в коде и генерирует исключение, потому что реестр резервной копии не определен.Spring Eureka Client Failover

2016-07-08T14:25:41.369Z WARN 0 [main] com.netflix.discovery.DiscoveryClient: Using default backup registry implementation which does not do anything. 2016-07-08T14:25:41.370Z WARN 0 [main] com.netflix.discovery.DiscoveryClient: Cannot fetch applications from apps although backup registry was specified java.lang.UnsupportedOperationException: Backup registry not implemented. at com.netflix.discovery.NotImplementedRegistryImpl.fetchRegistry(NotImplementedRegistryImpl.java:15) at com.netflix.discovery.DiscoveryClient.fetchRegistryFromBackup(DiscoveryClient.java:1811)

Мой bootstrap.yml

eureka: 
    client: 
    fetchRegistry: true 
    service-url: 
     defaultZone: https://server1/eureka/,https://server2/eureka/ 

Эта линия в клиенте Eureka сбой происходит.

private void fetchRegistryFromBackup() { 
    try { 
     @SuppressWarnings("deprecation") 
     BackupRegistry backupRegistryInstance = newBackupRegistryInstance(); 
     if (null == backupRegistryInstance) { // backward compatibility with the old protected method, in case it is being used. 
      backupRegistryInstance = backupRegistryProvider.get(); 
     } 

     if (null != backupRegistryInstance) { 

ответ

0

Вы можете попробовать следующую конфигурацию:

eureka: 
    client: 
    register-with-eureka: true 
    fetch-registry: true 
    availability-zones: 
     us-east-1: us-east-1a,us-east-1b 
    region: us-east-1 
    service-url: 
     us-east-1a: http://<server1>/eureka/ 
     us-east-1b: http://<server2>/eureka/