3

次のサービスがあります。

  1. Spring クラウド構成サーバー
  2. エウレカ発見サービス
  3. イベント サービス (Spring Boot アプリ)

「Config First」モードを使用します。つまり、最初に Config Server を開始し、その後 Discovery Service を開始します。

次に、イベント サービスを実行します。構成サーバーから構成を取得します。構成では、server.port プロパティを 8081 に指定します。

イベント サービスが検出サービスに登録されていることがわかります。

イベント サービスのインスタンスをもう 1 つ開始しようとすると、問題が発生します。別のポートで実行するには、 -Dserver.port vm 引数を使用します。したがって、私のコマンドは次のようになります。

java -jar event-service.jar -Dserver.port=8082

しかし、アプリケーションは起動に失敗し、8081 は既に使用されています。イベントサービスは構成サーバーからの構成を使用しているようで、この構成は VM 引数よりも優先されます。でも、逆であるべきだと思っていました。

4

2 に答える 2

7

コマンドライン引数の順序が間違っています: system variablejarfile の前にある必要があります:

$ java -jar -Dserver.port=8082 event-service.jar

コマンド ラインからプロパティを指定する 3 つの方法

  • 環境変数:$ server_port=8082 java -jar event-service.jar
  • システム変数:$ java -jar -Dserver.port=8082 event-service.jar
  • コマンドライン引数:$ java -jar event-service.jar --server.port=8082

forが に置き換えられているenvironment variableことに注意してください。dotsunderscores

ソース: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

于 2016-10-11T00:18:44.730 に答える