メインコンテンツまでスキップ

クラスタ構成

本ページは、クラスタ構成に固有の情報(構成図・サービス一覧・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 で起動します。

各サービスの役割は次のとおりです。

サービス役割
httpdWeb サーバ(Apache HTTPd)。静的ファイルの配信と resin1 / resin2 へのリクエストの振り分け(リバースプロキシ + ロードバランシング)を行います。
resin1アプリケーションサーバ(Caucho Resin)1 号機。iAP 本体が稼働します。
resin2アプリケーションサーバ(Caucho Resin)2 号機。iAP 本体が稼働します。
<db>データベース。iAP のメインデータベースとして利用します。サービス名は選択したブランチに応じた DB サービス名に対応します。
PostgreSQL: postgresql
Oracle: oracle
SQL Server: sqlserver
詳細は選択したブランチの README.md を参照してください。本書では以降も DB サービス名を <db> プレースホルダで表記します。
solr検索エンジン(Apache Solr)。
cassandraNoSQL データベース(Apache Cassandra)。
mailpitテスト用 SMTP サーバ。送信されたメールを Web UI で確認できます。
accelstudio-testing-agentAccel Studio テスト機能 テスト実行エージェント。必要な場合のみ起動します。
juggling-build-warwar ファイル・静的ファイルのビルド専用コンテナ。data/juggling/additional-modules 配下のユーザモジュールも組み込みます。常駐ではなく run で都度実行します。

URL / ポート番号一覧​

ポートサービスURL / 接続情報
80Apache HTTPdhttp://127.0.0.1/imart/login
http://127.0.0.1/imart/system/login
8080Resin1(アプリケーションサーバ)http://127.0.0.1:8080/imart/login (BASE_URL を設定している場合は正しく表示されないことがあります)
8081Resin2(アプリケーションサーバ)http://127.0.0.1:8081/imart/login (BASE_URL を設定している場合は正しく表示されないことがあります)
9000Resin1(サーバサイドスクリプトのデバッグ)VSCode から接続します。サーバ側の準備 を参照してください
9001Resin2(サーバサイドスクリプトのデバッグ)VSCode から接続します(コンテナ側のポートは Resin1 と同じ 9000 です)
8983Solr(検索エンジン)http://127.0.0.1:8983/solr
9160Cassandra(NoSQL DB)Thrift クライアントから接続
8188Accel Studio テスト機能 テスト実行エージェントhttp://127.0.0.1:8188
8025mailpithttp://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

環境全体の停止・再起動の手順は 共通セットアップ手順 を参照してください。