9

eureka サーバーをピア ツー ピア モードで動作させることができます。しかし、私が興味を持っていることの 1 つは、サービス検出クライアントを複数の eureka サーバーに登録するにはどうすればよいかということです。

私の使用例は次のとおりです
。eureka サーバーの 1 つ (サーバー A など) に登録するサービスがあり、その登録がそのピアに複製されるとします。サービスは実際にはサーバー A を指しています。サーバー A がダウンし、クライアントがサーバー A で更新することを期待している場合、サーバー A が存在しなくなった場合、更新はどのように機能しますか。両方に登録する必要がありますか? そうでない場合、クライアントがサーバー A と通信できない場合、更新はどのように行われますか? (A との最初の通信および/またはその後の通信から) サーバー B についてある程度の知識があり、フェールオーバーして実行しますか?その登録更新がありますか?それはどのドキュメントでも明確ではなく、確認する必要があります

その答えに基づいて、application.ymlに以下を追加しました

eureka:
  # these are settings for the client that gets services
  client:
    # enable these two settings if you want discovery to work
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://localhost:8762/eureka/, http://localhost:8761/eureka/

コンマ区切りリストの最初にのみ登録されます。それらを切り替えると、eureka サーバー間で登録が反転します。

コンマに基づいてこれらを区切っていることがわかりますが、私の推測では、Eureka は下でこれを使用していません (EurekaClientConfigBean.java から)。

    @Override
    public List<String> getEurekaServerServiceUrls(String myZone) {
        String serviceUrls = this.serviceUrl.get(myZone);
        if (serviceUrls == null || serviceUrls.isEmpty()) {
            serviceUrls = this.serviceUrl.get(DEFAULT_ZONE);
        }
        if (serviceUrls != null) {
            return Arrays.asList(serviceUrls.split(","));
        }

        return new ArrayList<>();
    }
4

5 に答える 5

1

クライアント アプリケーションには、Eureka URL のリストを提供する必要があります。URL はコンマで区切られています。

于 2015-02-14T04:01:03.480 に答える