2

同じホストで spring-boot アプリケーションの 2 つのインスタンスを実行するために、次の手順を実行しました。

  • spring-boot maven プラグインのリパッケージ ゴールで jar をビルドする
  • リモートサーバーの application-0.jar に application.jar をコピーします
  • APP_NAME=application-0 で application-0.conf ファイルを作成しました
  • application-0.jar をサービスとして起動
  • リモート サーバーの application-1.jar に application.jar をコピーします。
  • APP_NAME=application-1 で application-1.conf ファイルを作成しました
  • application-1.jar をサービスとして起動

次に、application-1 の起動時に次のエラーが発生しました:サービス アプリケーションは既に提供されています!

だから私はそれを実現しました:

  • Linux サービス名は jar にハードコードされているため、jar を何度コピーして名前を変更しても、サービスは同じままです (この場合はアプリケーション サービス)。
  • APP_NAME はサービス名には影響しません。.conf ファイルの APP_NAME は、それぞれ application-0 と application-1 に設定されています。私はまだ問題を抱えています。

spring-boot プラグインのドキュメントを読み、同じビルドのさまざまな spring-boot maven プラグインの実行で、attachclassifier、およびembeddedLaunchScriptProperties.initInfoProvidesオプションの失敗したコンパイルを試みました。

また、別の Maven プロファイルで別の実行をカプセル化しようとしました。元の jar ファイルが 1 つと、Spring-Boot jar が 1 つ残っています。

したがって、誰かが私の目標を達成する方法を知っていれば (同じソース、同じホストで実行しているため、適切に構成された複数の Linux サービス)、本当に助けていただければ幸いです。

失敗した構成の例を以下に示します。

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <executions>
    <execution>
      <id>classic</id>
      <goals>
        <goal>repackage</goal>
      </goals>
      <configuration>
        <executable>true</executable>
      </configuration>
    </execution>
    <execution>
      <id>instance-0</id>
      <goals>
        <goal>repackage</goal>
      </goals>
      <configuration>
        <finalName>${project.artifactId}-0</finalName>
        <executable>true</executable>
        <classifier>exec</classifier>
        <attach>false</attach>
      </configuration>
    </execution>
    <execution>
      <id>instance-1</id>
      <goals>
        <goal>repackage</goal>
      </goals>
      <configuration>
        <finalName>${project.artifactId}-1</finalName>
        <executable>true</executable>
        <classifier>exec</classifier>
        <attach>false</attach>
      </configuration>
    </execution>
  </executions>
</plugin>

ありがとうございました

4

1 に答える 1