クラスタ構成
本ページは、クラスタ構成に固有の情報(構成図・サービス一覧・URL / ポート番号一覧・個別サービスの再起動・片系のみの再起動)をまとめたものです。セットアップの共通手順は 共通セットアップ手順 を参照してください。
Docker 環境の構成
クラスタ構成では、Resin が resin1 / resin2 の 2 サービスとして起動し、Apache HTTPd が両者にリクエストを振り分けます。スタンドアロン構成との差分は以下のとおりです。
- Resin が 2 サービス構成(
resin1,resin2)。 - Apache HTTPd 側でリクエスト振り分け(ロードバランシング)を行う前提。
- Resin の Storage 領域(
data/resin/storage)は両 Resin で共有マウントされ、各 Resin のログはdata/resin1/data/resin2に分離。
以下のコンテナ群を docker compose で起動します。
各サービスの役割は次のとおりです。
| サービス | 役割 |
|---|---|
httpd | Web サーバ(Apache HTTPd)。静的ファイルの配信と resin1 / resin2 へのリクエストの振り分け(リバースプロキシ + ロードバランシング)を行います。 |
resin1 | アプリケーションサーバ(Caucho Resin)1 号機。iAP 本体が稼働します。 |
resin2 | アプリケーションサーバ(Caucho Resin)2 号機。iAP 本体が稼働します。 |
<db> | データベース。iAP のメインデータベースとして利用します。サービス名は選択したブランチに応じた DB サービス名に対応します。 PostgreSQL: postgresqlOracle: oracleSQL Server: sqlserver詳細は選択したブランチの README.md を参照してください。本書では以降も DB サービス名を <db> プレースホルダで表記します。 |
solr | 検索エンジン(Apache Solr)。 |
cassandra | NoSQL データベース(Apache Cassandra)。 |
mailpit | テスト用 SMTP サーバ。送信されたメールを Web UI で確認できます。 |
accelstudio-testing-agent | Accel Studio テスト機能 テスト実行エージェント。必要な場合のみ起動します。 |
juggling-build-war | war ファイル・静的ファイルのビルド専用コンテナ。data/juggling/additional-modules 配下のユーザモジュールも組み込みます。常駐ではなく run で都度実行します。 |
URL / ポート番号一覧
| ポート | サービス | URL / 接続情報 |
|---|---|---|
| 80 | Apache HTTPd | http://127.0.0.1/imart/login http://127.0.0.1/imart/system/login |
| 8080 | Resin1(アプリケーションサーバ) | http://127.0.0.1:8080/imart/login (BASE_URL を設定している場合は正しく表示されないことがあります) |
| 8081 | Resin2(アプリケーションサーバ) | http://127.0.0.1:8081/imart/login (BASE_URL を設定している場合は正しく表示されないことがあります) |
| 9000 | Resin1(サーバサイドスクリプトのデバッグ) | VSCode から接続します。サーバ側の準備 を参照してください |
| 9001 | Resin2(サーバサイドスクリプトのデバッグ) | VSCode から接続します(コンテナ側のポートは Resin1 と同じ 9000 です) |
| 8983 | Solr(検索エンジン) | http://127.0.0.1:8983/solr |
| 9160 | Cassandra(NoSQL DB) | Thrift クライアントから接続 |
| 8188 | Accel Studio テスト機能 テスト実行エージェント | http://127.0.0.1:8188 |
| 8025 | mailpit | http://127.0.0.1:8025 |
データベースのポート・接続情報(ホスト・DB 名・ユーザ・パスワード)は選択したブランチに依存します。選択したブランチの README.md を参照してください。
ポートの競合
上記ポートを既存のサービスで使用している場合、コンテナの起動に失敗します。事前に該当ポートが空いていることをご確認ください(クラスタ構成はスタンドアロン構成より使用ポートが 2 つ多い(8081 / 9001)点にご注意ください)。競合した場合の対処は 共通トラブル を参照してください。
個別サービスの再起動
設定変更後など、特定のサービスのみを再起動したい場合は、サービス名を指定して restart を実行できます。<db> は選択したブランチの DB サービス名(例: PostgreSQL の場合は postgresql)に読み替えてください(README「停止/再起動」参照)。
# Resin1 の再起動
docker compose restart resin1
# Resin2 の再起動
docker compose restart resin2
# Apache HTTPd の再起動
docker compose restart httpd
# Apache Cassandra の再起動
docker compose restart cassandra
# データベース(<db>)の再起動
docker compose restart <db>
# Solr の再起動
docker compose restart solr
片系のみの Resin の再起動
クラスタ構成では、resin1 / resin2 のうち片方のみを再起動できます。片系を再起動している間も、もう片系は処理を継続するため、無停止での再起動が可能です。
# Resin1 のみ再起動
docker compose restart resin1
# Resin2 のみ再起動
docker compose restart resin2
環境全体の停止・再起動の手順は 共通セットアップ手順 を参照してください。