3

私は、aspクライアントでいっぱいのWebファームがWCFサービスのアプリケーションサーバーファームにアクセスするサービスベースのアーキテクチャを持っています。明らかに、すべてのデータベースアクセスはWCFサービスによって行われます。次に、サービス層レベルでVelocityを使用して、頻繁に使用するデータベースで取得したオブジェクトをキャッシュしたいと思います。各物理アプリケーションサーバーもキャッシュクラスターの一部にすることを検討しています。

Velocityのドキュメントによると、リージョンを使用する場合、オブジェクトは単一のホストにのみ保存されます。どういうわけか同期できれば、各ホストが独自のキャッシュを保持していれば、実際には問題はありません。

だから私の質問は

  1. あるホストで1つのリージョンを作成した場合、それは別のホストでも作成されますか?
  2. キャッシュ領域をクリアすると、1つのホストでのみクリアされますか?
  3. すべてのホストでリージョンレベルの通知をサブスクライブする場合、あるホストのイベントを別のホストでキャッチできますか?
  4. このシナリオでは、リージョンを使用する必要がありますか、それともそれらから離れる必要がありますか?

私の質問が明確であることを願っています。実際、私は自分の質問への回答よりも自分の問題の解決策に興味があります

4

3 に答える 3

2

はい、あなたはその地域が1つのホストにのみ存在するというドキュメントを読んでいます。

「どういうわけか同期できれば、各ホストが独自のキャッシュを保持していれば、実際には問題はありません。」

同期とは、HAが有効になっていることを意味しますか?それがあなたの意図したものであれば、Velocityは実際にそれを処理します。

質問の場合:1。いいえ。2。はい3.通知がクライアントに送信されます。したがって、他のホストに通知を送信する方法があるかどうかはわかりません。4.リージョンは検索機能を提供し、HAを取り除きます。あなたの場合、HAの利点を利用することができます。

于 2010-01-26T15:43:30.710 に答える
1

リージョンがあるとは、必ずしもHAがないことを意味するわけではありません。独自のキャッシュを作成する場合(および「デフォルト」のキャッシュを使用しない場合)、Secondary = 1(HAオン)で作成できます。ここで、4つのキャッシュホストがあるとします。リージョンを定義すると、プライマリホストとセカンダリホストの両方が含まれます。したがって、リージョンに対する各アクションは、両方に適用されることになります。

シャニー

于 2010-06-30T11:35:41.787 に答える
1

名前付きキャッシュは、参加しているノード全体に分散されます。名前付きリージョンは単一のノードに存在します。リージョンはHAにすることができますが、オブジェクトの負荷がクラスター内の参加ノード全体に分散されないため、分散キャッシュスケーリングを最大限に活用することはできません。また、HAで名前付きキャッシュを使用するには、「デフォルト」キャッシュのみを使用した場合は2ノードではなく、最低3ノードが必要です。

于 2011-05-07T19:29:34.887 に答える