1

だから私は最近、Spring Cloud のこの素晴らしい構成サービスを学び、いくつかの苦労の末、1 つの構成サーバーから構成プロパティを読み取る複数のノードを使用して、分散アプリケーションをセットアップすることができました。

ただし、解決方法がわからない問題の1つは、ほとんどの小道具が複数のノードで同じであっても、一部の小道具にはローカルバージョンが必要であり、構成サービスと一緒にローカル小道具を設定する方法がわからないことです。

たとえば、これは私のbootstrap.properties

spring.cloud.config.uri=${config.server:http://localhost:8888}
spring.application.name=worker

bootstrap.properties別のファイルの下または別のファイルに追加の小道具を追加するapplication.propertiesと、次のように、アクチュエーターの env エンドポイントの下に表示されます。

configService:file:///home/me/work/config-test/worker.properties: 
{
    server.timeout: "100"
},

applicationConfig: [classpath:/application.properties]: {
    server.timeout: "50"
},

私のアプリでserver.timeoutは、常に 100 になります。このような集中型構成サービスを使用する場合、ローカル値を参照する方法がわかりません。

4

2 に答える 2

1

OK、さらに調査した結果、答えが見つかりました。https://docs.pivotal.io/spring-cloud-services/config-server/configuration-clients.htmlから

Spring アプリケーションは、Config Server をプロパティ ソースとして使用できます。構成サーバーからのプロパティは、ローカルで定義されたものをオーバーライドします (たとえば、クラスパスの application.yml を介して)。

したがって、正しいことは、クライアント側のプロパティを構成サービスから除外することです。これは、そのようなプロパティに対して、クライアント側の値が存在する場合にのみ上書きされるデフォルトを持つ方法がないことも意味します。

于 2016-09-02T01:16:53.917 に答える