1. 序章

このチュートリアルでは、JBossWildFlyアプリケーションサーバーのさまざまなサーバーモードと構成について説明します。 WildFlyは、CLIと管理コンソールを備えた軽量のアプリケーションサーバーです。

ただし、開始する前に、JAVA_HOME変数がJDKに設定されていることを確認する必要があります。 バージョン8以降はすべてWildFly17で機能します。

2. サーバーモード

WildFlyには、デフォルトでスタンドアロンモードとドメインモードが付属しています。 まず、スタンドアロンを見てみましょう。

2.1. スタンドアロン

WildFlyをダウンロードしてローカルディレクトリに抽出した後、ユーザースクリプトを実行する必要があります。

Linuxの場合、次のようにします。

~/bin/add-user.sh

またはWindowsの場合:

~\bin\add-user.bat

adminユーザーはすでに存在します。 ただし、パスワードを別のものに更新する必要があります。 サーバー管理に別のアカウントを使用することを計画している場合でも、デフォルトの管理者パスワードを更新することが常にベストプラクティスです。

UIは、オプション(a)でパスワードを更新するように要求します。

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : admin
User 'admin' already exists and is enabled, would you like to...
 a) Update the existing user password and roles
 b) Disable the existing user
 c) Type a new username
(a):

パスワードを変更した後、OSに適した起動スクリプトを実行する必要があります。

~\bin\standalone.bat

サーバーの出力が停止すると、サーバーが実行されていることがわかります。

これで、出力のプロンプトに従って、http://127.0.0.1:9990の管理コンソールにアクセスできます。 サーバーのURLhttp://127.0.0.1:8080 /、にアクセスすると、サーバーが実行中であることを通知するメッセージが表示されます。

Server is up and running!

この迅速で簡単なセットアップは、単一のサーバーで実行されている1つのインスタンスには最適ですが、複数のインスタンスのドメインモードを確認してみましょう。

2.2. ドメイン

前述のように、ドメインモードでは、複数のサーバーインスタンスが単一のホストコントローラーによって管理されます。 デフォルトの数は2台のサーバーです。

スタンドアロンインスタンスと同様に、add-userスクリプトを使用してユーザーを追加します。 ただし、起動スクリプトは、スタンドアロンではなくドメインと適切に呼ばれます。

起動プロセスと同じ手順を実行した後、個々のサーバーインスタンスにアクセスします。

たとえば、 http://127.0.0.1:8080/にある最初のサーバーの同じシングルインスタンスURLにアクセスできます。

Server is up and running!

同様に、http://127.0.0.1:8230でサーバー2にアクセスできます。

Server is up and running!

そのサーバー2の奇数ポート構成を少し後で見ていきます。

3. 展開

最初のアプリケーションをデプロイするには、優れたサンプルアプリケーションが必要です。

Spring Boot HelloWorldを使用しましょう。 少し変更を加えるだけで、WildFlyで動作します。

まず、pom.xmlを更新してWARを構築しましょう。 パッケージング要素を変更し、maven-war-pluginを追加します。

<packaging>war</packaging>
...
<build>
  <plugins>
	<plugin>
	  <groupId>org.apache.maven.plugins</groupId>
	  <artifactId>maven-war-plugin</artifactId>
	  <configuration>
		<archive>
		  <manifestEntries>
			<Dependencies>jdk.unsupported</Dependencies>
		  </manifestEntries>
		</archive>
	  </configuration>
	</plugin>
  </plugins>
</build>

次に、ApplicationクラスをextendSpringBootServletInitializerに変更する必要があります。

public class Application extends SpringBootServletInitializer

そして、configureメソッドをオーバーライドします。

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

最後に、プロジェクトをビルドしましょう。

./mvnw package

これで、デプロイできます。

3.1. アプリケーションをデプロイする

コンソールを介して新しいWildFlyアプリケーションをデプロイするのがいかに簡単かを見てみましょう。

まず、前に設定した管理者ユーザーとパスワードを使用してコンソールにログインします。

追加->デプロイメントのアップロード->ファイルの選択…をクリックします

次に、Spring Bootアプリケーションのターゲットディレクトリを参照し、WARファイルをアップロードします。 次へをクリックして続行し、新しいアプリケーションの名前を編集します。

最後に、同じURL [ http://127.0.0.1:8080/でアプリケーションにアクセスします。 これで、アプリケーションの出力は次のようになります。

Greetings from Spring Boot!

アプリケーションのデプロイが成功した結果として、いくつかの一般的な構成プロパティを確認しましょう。

4. サーバー構成

これらの一般的なプロパティについては、管理コンソールで表示するのが最も便利です。

4.1. 共通の構成プロパティ

まず、サブシステムを見てみましょう。各サブシステムには、実行時統計用にtrueに設定できる統計対応の値があります。

パスセクションの下に、サーバーで使用されている重要なファイルパスがいくつか表示されます。

例として、構成ディレクトリとログディレクトリに特定の値を使用すると便利です。

jboss.server.config.dir
jboss.server.log.dirw

さらに、データソースとドライバーセクションでは、外部データソースとデータ永続層のさまざまなドライバーを管理できます。

ログサブシステムでは、ログレベルをINFOからDEBUGに更新して、より多くのアプリケーションログを表示します。

4.2. サーバー構成ファイル

ドメインモードのサーバー2URL http://127.0.0.1:8230 を覚えていますか? 奇数ポート8230は、host-slave.xml構成ファイルの150のデフォルトオフセット値によるものです。

<server name="server-one" group="main-server-group"/>
<server name="server-two" group="main-server-group" auto-start="true">
  <jvm name="default"/>
  <socket-bindings port-offset="150"/>
</server>

ただし、ポートオフセット値を簡単に更新できます。

<socket-bindings port-offset="10"/>

その結果、URL http://127.0.0.1:8090でサーバー2にアクセスするようになりました。

便利な管理コンソールでアプリケーションを使用および構成するもう1つの優れた機能は、これらの設定をXMLファイルとしてエクスポートできることです。 XMLファイルを介して一貫した構成を使用すると、複数の環境の管理が簡素化されます。

5. モニタリング

WildFlyのコマンドラインインターフェースでは、管理コンソールと同じように設定値を表示および更新できます。

CLIを使用するには、次のコマンドを実行するだけです。

~\bin\jboss-cli.bat

その後、次のように入力します。

[disconnected /] connect
[domain@localhost:9990 /]

その結果、プロンプトに従ってサーバーインスタンスに接続できます。 接続後、リアルタイムで構成にアクセスできます。

たとえば、サーバーインスタンスに接続したときに現在のすべての構成をXMLとして表示するには、read-config-as-xmlコマンドを実行します。

[domain@localhost:9990 /] :read-config-as-xml

CLIは、任意のサーバーサブシステムの実行時統計にも使用できます。 最も重要なことは、CLIはサーバーメトリックを通じてさまざまな問題を特定するのに最適です。

6. 結論

このチュートリアルでは、WildFlyでの最初のアプリケーションのセットアップとデプロイ、およびサーバーのいくつかの設定オプションについて説明しました。

Spring BootサンプルプロジェクトとXML構成のエクスポートは、GitHub表示できます。