Liferayプラットフォームでのクラスタリングは、UDP Multicast、UDP Unicast、TCP Unicastを使用することで実現可能です。 マルチキャストはデフォルトで使用されていますが、インフラストラクチャーレベルでUDPマルチキャストが使用できない、または無効になっているケースがあります。 そのような場合、LiferayプラットフォームとのクラスタリングにTCP Unicastを使用することができます。
本記事では、Liferay 6.2 Portal EEを2ノード使用し、TCP UnicastによるLiferayプラットフォームのクラスタリングを設定するために必要な手順を紹介します。 対応する企業インフラやAmazon AWSについても、同様の説明があります。
解像度
Liferay環境でTCP Unicastクラスタリングを実現するには、クラスタ化されたLiferayインスタンスのそれぞれで、以下の手順を実行する必要があります。
-
関連するポートが開いていることを確認する
Liferayのクラスタリングを成功させるためには、ホスト同士が通信してネットワーク上にクラスタリングパケットを送信する必要があります。 以下のセクションで紹介する TCP Ping と S3 Ping 以外にも、Liferay のクラスタリングを設定するためのオプションはこちらにあります: Liferay Portal の分散キャッシュを管理するをご覧ください。
- TCP Unicastを設定する
以下の手順で、TCP Unicast の設定を含む XML ファイルを構成します。 このXMLファイルの設定方法としては、まず
[Liferay_Home]㊦[Tomcat_Home]㊦\ROOTWEB-INF↩lib㊦jgroups.jar\tcp.xmlからオリジナルコピーを入手し、そこで提供されているデフォルト値をもとに自分で調整することをお勧めします。 Liferay DXP 7.1以上では、tcp.xmlは[Liferay_Home]/osgi/marketplace/Liferay Foundation - Liferay Portal - Impl.lpkg --> com.liferay.portal.cluster.multiple-[version].jar --> lib/jgroups-[version].Final.jar --> tcp.xmlに配置されています。独自のXMLファイルの設定が終わったら、最も簡単な方法は、アプリケーションサーバーのグローバルライブラリにXMLファイルを置き、Liferayインスタンスが起動時にXMLファイルを読むことができるようにすることです。 それ以外の場合は、
*注:AWS環境の場合:cluster.link.channel.properties.controlおよびcluster.link.channel.properties.transport.0のプロパティで、XMLファイル名だけでなく詳細パスを指定する必要があります。-
XMLファイルに関連するバケット情報を含める前に、クラスタ化されたすべてのLiferayインスタンスからアクセス可能なAmazon S3バケットを作成する必要があります。 XML ファイルの設定の詳細については、こちらをご覧ください: Liferay PortalのDistributed Cacheの管理をご覧ください。
-
JGroupsのトラフィックを許可するために、EC2 Security Groupsを設定する必要があります。 Linux および/または Windowsについては、AWS Security Groups のドキュメントを参照してください。
-
- portal-ext.propertiesにプロパティを追加する
Liferay クラスタリングに必要なポータルプロパティの他に、Liferay インスタンスが設定された XML ファイルから設定をピックアップするために、いくつかの追加プロパティを
portal-ext.propertiesで指定する必要があります。 必要なポータルプロパティの一式を以下に示します。cluster.link.enabled=true cluster.link.autodetect.address= www.google.com:80 ehcache.cluster.link.replication.enabled=true cluster.link.channel.properties.control=Path_to_the_XML cluster.link.channel.properties.transport.0=Path_to_the_XML # Only needed when Lucene is being used lucene.replicate.write=true - Ehcache Cluster EEアプリケーションをデプロイします。
Ehcache Cluster EEプラグインは、Liferayクラスタ環境の稼働前に、クラスタ化されたすべてのLiferayインスタンスにデプロイされることが必要です。
- Liferay Clusterの起動とベリファイ
クラスタリングが期待通りに動作していることを確認するために、ここに記載されているテストを参照してください: クラスタ化された環境での Liferay Portal のインストール と クラスタリンクが機能しているかどうかのテスト.
追加情報
デバッグのヒント
- どのノードがリクエストを処理したかをページセットごとに表示するよう、Liferayプラットフォームに指示する:
web.server.display.node=true
注:CSSで非表示にすることができます。
- クラスタリングデバッグトレースセットを有効にするには:
cluster.executor.debug.enabled=trueJGroupsを使用する場合、すべての構成情報が同期されていることを確認してください。 例えば、最新のフィックスパックには、Liferayに同梱されているものとは異なるJGroupsの最新バージョンが含まれている場合があります。