はじめに
Payaraサーバのクラスタについて、よくわからなくて気が進まないが、ちょっと調べて動作確認した。
環境
- Payara 5(コミュニティ版)×2
- Apache2.4
- CentOS Stream 9(docker)
単純に2台並べる(Stickyセッション使用)
【参考】インスタンスを作ったり、Domain Administration Server(DAS)は1台で、ssh経由で2台目をコントロールできるみたい。やらなかったが。
JvmRouteオプションを追加するのみで、それ以外はデフォルトのまま使用して動作確認した。
メモ:
- PayaraのJavaオプションにjvmRouteオプションをつけて起動。
- Payara1とPayara2の構成は、jmvRouteオプションの引数以外は同じ。
- インスタンスも作成せず、デフォルトの状態でアプリケーションをデプロイ
- PayaraのアプリケーションのHTTPポートは8080
- mod_proxyでリクエストを振分け。sitckyセッションにより、リクエストは同一サーバに送られる。
- ユーザ接続中のサーバに障害が発生した場合、そのユーザの処理は継続できない。
- アプリケーション配置先は、/opt/payara5/glassfish/domains/domain1/applications/配下
(payara5を/opt/payara5に配置した場合)
mod_proxyの設定。
<Proxy "balancer://payara/">
BalancerMember "http://<payara1のIP>:8080/" route=app1
BalancerMember "http://<payara2のIP>:8080/" route=app2
ProxySet lbmethod=byrequests
ProxySet stickysession=JSESSIONID
</Proxy>
ProxyPass / "balancer://payara/"
ProxyPassReverse / "balancer://payara/"
デプロイメントグループで構築
デプロイメントグループは、アプリケーションをグループ化して管理するための機能とのこと。
1つのコンソールから複数台のサーバに同時にデプロイしたり、起動、停止を操作することができる。台数が少なく、あまり管理コンソールから操作しないところであれば、それほどうれしくない。
【参考】
メモ:
- 構築時は、Payara1のみ用意しておけばよい。Payara2は、Payra1からssh経由でコピー、展開までしてくれる。
- node➾インスタンス➾デプロイメントグループの順に構築する。
- 各サーバから、/asadmin start-local-instance <インスタンス名>で個別にアプリケーション起動可能。
- アプリケーションは、
mod_proxyの設定。
<Proxy "balancer://payara/">
BalancerMember "http://<payara1のIP>:28080/"
BalancerMember "http://<payara2のIP>:28080/"
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass / "balancer://payara/"
ProxyPassReverse / "balancer://payara/"