8

現在、ehcacheでRMI配布オプションを使用する方法を調査しています。ehcache.xmlを適切に構成しましたが、レプリケーションは正常に機能しているようです。しかし、私は2つの質問があります:

-> ehcache/hibernateはエンティティごとに1つのキャッシュを作成するようです。これは問題ありませんが、レプリケーションが行われると、レプリケートする1​​つのスレッド/キャッシュが作成されます。これは意図された振る舞いですか?私たちのドメインは大きいので、それは約300のスレッドを作成します、それは私には本当に大きいようです

->もう1つの厄介な結果は、ハートビートメッセージがこれらのキャッシュ名をすべて集約しているように見えることです。私が見たところ、メッセージは1500バイトに収まるはずですが、収まらないため、ログに次のメッセージが表示されます。ハートビートが機能していません。レプリケーション用に構成するキャッシュの数を減らします。サイズは1747ですが、1500を超えてはなりません。これをどのように変更できるかについてのアイデアはありますか?

あなたの助けをどうもありがとう

4

5 に答える 5

3

短縮された名前 (名前のハッシュ) を持つ独自の Cache オブジェクトを作成するために、buildCache() をオーバーライドする hibernate EhCacheProvider の独自のカスタム コピーを持つハックが既に 1 つあります。これは 1500 の制限のあたりになります。逆引き用のハッシュ名を含む元の名前のハッシュマップを保持します。

これは少し前に行い、本番環境で使用しています。

また、単一のレプリケーター スレッドを持つ他の問題も調べました。まず、RMICacheReplicatorFactory をコピーし、createCacheEventListener() を変更して RMIAsynchronousCacheReplicator のコピーを返すようにしました。このコピーは、replicationThread フィールドを静的にしてから、必要な修正を加えることで修正しました。私たちはそれを徹底的にテストしたり、本番環境に置いたりすることはできませんでしたが、この投稿を見つけた方法をもう一度調べています:)

于 2009-05-22T09:17:27.227 に答える
2

Terracotta よりも EHCache を検討しましたか? Terracotta Hibernate IntegrationTerracotta EHCache Integrationをご覧ください。

重要なことに、Terracotta 分散 EHCache は一貫性があり、すべてのノードが同じキャッシュ ビューを持っています。これは、私が使用したアプリケーションの 1 つにとって非常に重要です。

見てください。それは私たちにとって魅力のように機能します。

/RS

于 2009-05-19T20:25:38.397 に答える
2

EHcache の代替として JBossCache を検討しましたか? JBossCache はトランザクションを分散し、高負荷に対して十分にテストされています。これには、UDP または TCP マルチキャスト/ブロードキャスト レプリケーションを使用できる低レベルのレプリケーション メカニズムがあります。

于 2009-04-13T06:22:38.813 に答える
0

jms レプリケーションはオプションですか?

(非同期動作で使用することを検討していましたが、うまく機能します。ドキュメントが間違っていたので、ソースコードをチェックして、適切に構成するために必要な実際の属性を確認する必要がありました。jms の良い点は、そのインフラストラクチャがある場合ファイアウォールなどを設定する必要はありません。)

于 2009-05-02T08:07:37.687 に答える