web-dev-qa-db-ja.com

spring.cloud.config.enabled:falseを介してSpring Cloud Configを無効にすることはできません

私は、Spring Cloud Configを直接使用しているのではなく、Spring Cloud Hystrixスターターを介して推移的であると言って、これを前置きさせてください。

@EnableHystrixのみを使用すると、Spring Cloudは構成サーバーを見つけようとしますが、私は使用していないため、予期せず失敗します。私の知る限り、アプリケーションは問題なく動作しますが、問題はステータスチェックにあります。構成サーバーがないため、ヘルスにはDOWNと表示されます。

プロジェクトのソースを参照すると、spring.cloud.config.enabled=falseがこの機能チェーンを無効にすることを期待していますが、これは私が見ているものではありません。

1.0.0.RC1(このプロパティを追加)にアップグレードし、@EnableCircuitBreakerを使用した後:

{
    status: "DOWN",
    discovery: {
        status: "DOWN",
        discoveryClient: {
            status: "DOWN",
            error: "org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.cloud.client.discovery.DiscoveryClient] is defined"
        }
    },
    diskSpace: {
        status: "UP",
        free: 358479622144,
        threshold: 10485760
    },
    hystrix: {
        status: "UP"
    },
    configServer: {
        status: "DOWN",
        error: "org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http: //localhost: 8888/bootstrap/default/master":Connection refused: connect; nested exception is Java.net.ConnectException: Connection refused: connect"
    }
}

Configpropsエンドポイントを確認した後、seemsプロパティがオーバーライドされていることがわかります。親でconfigClientが有効になっていることに注意してください。

parent: {
    configClientProperties: {
        prefix: "spring.cloud.config",
        properties: {
            password: null,
            discovery: {
                enabled: false,
                serviceId: "CONFIGSERVER"
            },
            name: "bootstrap",
            label: "master",
            env: "default",
            uri: "http://localhost:8888",
            enabled: true,
            failFast: false,
            username: null
        }
    }
},
configClientProperties: {
    prefix: "spring.cloud.config",
    properties: {
        password: null,
        discovery: {
            enabled: false,
            serviceId: "CONFIGSERVER"
        },
        name: "bootstrap",
        label: "master",
        env: "default",
        uri: "http://localhost:8888",
        enabled: false,
        failFast: false,
        username: null
    }
}

私がこれを正しく行っていないと思われる場合は、どのような方向にもお願いします。

12
bvulaj

ブートストラップ中に構成サーバーが必要であり、そこから親プロパティソースが取得されます。 spring.cloud.config.enabledプロパティをbootstrap.yml(または.properties)に移動するだけでよいようです。

16
Dave Syer

私は同じ問題を抱えていましたが、構成サーバーを無効にしたいのですが(今のところ必要ないため)、上記のプロパティは少なくともRC1では正しくありません。

spring.cloud.enabled

する必要があります:

spring.cloud.config.enabled
11
MiguelPuyol
  • bootstrapプロパティまたはymlをリソースディレクトリまたはアプリケーションディレクトリに配置し、_spring.cloud.config.enabled=false_を追加できます。または
  • 環境変数を追加して、Spring Cloud構成サーバークライアントを無効にすることができます:_SPRING_CLOUD_CONFIG_ENABLED=false_ OR
  • 引数をSpringApplication.runにパラメーターに渡す場合、パラメーターをアプリに追加することにより、構成サーバークライアントを無効にすることができます。

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

    アプリを起動するには:

    _Java -jar yourapplication.jar --spring.cloud.config.enabled=false_

7
Dániel Kis

上記の変更をすべて試しましたが、それでも設定クライアントが停止しませんでした。

私のプロジェクトのpom.xmlファイルで次の除外を使用してそれを無効にすることができた唯一の方法。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </exclusion>
    </exclusions>
</dependency>
4
JMewada

検出サービスのフォローアップ(他の投稿がないように見えます)に関して、spring.cloud.config.discovery.enabled: falseの設定は私にとってはうまくいきましたが、それがbootstrap(yml/properties)で設定され、@EnableDiscoveryClientアノテーションを私のApplicationクラス。これは、ディスカバリーが時々使用されないサービスにそのアノテーションを使用できないことを意味すると思います。

0
Eric Sword