2

Rackspace の 2 台のサーバーで liferay 6.1.1 CE ポータルをクラスター化しようとしています。サーバーは、Windows 2008 R2、次世代クラウド サーバーです。マルチキャストを機能させるには、ラックスペースでクラウド ネットワークを有効にし、それを次世代サーバーにのみ接続する必要があるためです。

各サーバーには、パブリック、ラックスペース データ センター、ローカル プライベート (クラウド ネットワーク) の 3 つのネットワーク インターフェイスがあります。

複数の記事からすべての手順を実行しましたが、何らかの理由で 2 つのサーバー間でデータ キャッシュを複製したくないだけです。

セッション レプリケーションの apache/tomcat 構成は正常に機能します。また、マルチキャストも使用します。

ポータル プロパティ ファイルで次の行を有効にしました。

cluster.link.enabled=true

cluster.link.autodetect.address=: ---- ここでローカル アドレスを設定しないと、パブリック インターフェイスにバインドしようとするように見えるので、これを追加しました...

lucene.replicate.write=true

ここでのもう 1 つのことは、この正確なセットアップがサンドボックス環境で完全に機能していることです。唯一の違いは、サンドボックスがラックスペースではなく、ローカルのオフィスにあることです...

助けてください!

ありがとうウェッセル

そのため、プライベート クラウド ネットワークが接続された次世代サーバーを使用している場合、ラックスペースでのマルチキャストは機能します。ただし、この liferay クラスタリングを機能させるには、RMI の代わりに jgroups を使用する必要があります。

以下の行は、jgroups キャッシュ レプリケーションをラックスペース Windows サーバーで機能させるために、ポータル プロパティ ファイルに必要なものです。デフォルトの RMI レプリケーションは機能しません:

cluster.link.enabled=true

cluster.link.autodetect.address=[ローカル ネットワーク IP]:[ポート]

ehcache.bootstrap.cache.loader.factory=com.liferay.portal.cache.ehcache.JGroupsBootstrapCacheLoaderFactory

ehcache.cache.event.listener.factory=net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory

ehcache.cache.manager.peer.provider.factory=net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory

lucene.replicate.write=true

また、JVM 起動オプションの一部として次の行を setenv.bat に追加します。

-Djgroups.bind_addr=[ローカル ネットワーク IP]

4

1 に答える 1

1

ノードを互いに「紹介」しない限り、ノードはマルチキャストを介してお互いを発見しようとします。私の予想では、Rackspace はマルチキャスト リクエストをルーティングしていません。クラスタ マシンがユニキャストを介して通信できる JGroups 設定を見てください。適切な接続があれば動作するはずです (最初に ping を試してください)。

自動検出アドレスを設定する必要があります。これは、(マルチキャスト) 要求が送信されるインターフェイスを決定するメカニズムであるためです。公開インターフェイスでそれらを明らかにしたくないので、それを構成することは正しいです (そして期待されます)。

于 2013-10-31T21:36:31.433 に答える