7

https://github.com/Netflix/eureka/wiki/Configuring-Eureka-in-AWS-Cloudで説明されているように、AWS で DNS ベースの EIP 構成を使用して eureka クラスターをセットアップしようとしています。

すべてが機能しているように見えますが、eureka ダッシュボードは、eureka インスタンスが利用できないと主張しています。これが単なるUIの問題なのか(私はそう思う)、それとも何かが足りないのか疑問に思っています。

ダッシュボードの "unavailable-replicas" ロジックを理解しているように、これは eureka が登録ホスト名とレプリカ ホスト名を比較しているためです。インスタンスは、検出クライアントで内部 VPC IP に登録されますが、レプリカ ピアを探すときは EIP に登録されます (奇妙なことに、eureka ログで、内部 VPC IP も使用していることがわかります)。

問題は、それは私が心配する必要のない表面的な UI の問題だけなのか、それとも設定ミスのために介入するのを待っているより大きな問題なのかということです。それがUIだけの場合:どうにかしてそれを「修復」できますか?

ここに画像の説明を入力

編集:

たぶん関連https://github.com/spring-cloud/spring-cloud-netflix/issues/102#issuecomment-74446709

4

1 に答える 1

13

関連するgithubの問題で@rozhokの助けを借りて、私は今、実用的な解決策を持っています. 誰かが同じ問題に直面している場合、これが私がやったことです:

アプリケーション.yml

eureka:
  datacenter: cloud
  client:
    eurekaServerDNSName: your.dns.name
    eurekaServerPort: 8761
    eurekaServerURLContext: eureka
    region: eu-west-1
    registerWithEureka: true
    fetchRegistry: true
    useDnsForFetchingServiceUrls: true
  server:
    waitTimeInMsWhenSyncEmpty: 0
    enableSelfPreservation: true

エウレカサーバー

@SpringBootApplication
@EnableEurekaServer
@EnableDiscoveryClient
public class EurekaServer {

    @Value("${server.port:8761}") 
    private int port;

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

    @Bean
    @Autowired
    public EurekaInstanceConfigBean eurekaInstanceConfigBean(InetUtils inetUtils) {
      EurekaInstanceConfigBean config = new EurekaInstanceConfigBean(inetUtils);
      AmazonInfo info = AmazonInfo.Builder.newBuilder().autoBuild("eureka");

      // Don't use spring cloud's hostname here. 
      // See comment below by Michal
      config.setHostname(
          info.get(AmazonInfo.MetaDataKey.publicHostname));

      config.setIpAddress(info.get(AmazonInfo.MetaDataKey.publicIpv4));
      config.setNonSecurePort(port);
      config.setDataCenterInfo(info);
      return config;
    }

}

その構成では、各 eureka サーバーは他のサーバーのみを使用可能なレプリカとして認識します。

ここに画像の説明を入力

于 2016-04-07T15:42:10.717 に答える