2.9. クライアントリスナー


クライアントリスナーは、Data Grid クラスターでデータを追加、削除、または変更されるたびに通知を出します。

たとえば、以下の実装は、指定の場所で温度が変わるたびにイベントをトリガーします。

@ClientListener
public class TemperatureChangesListener {
   private String location;

   TemperatureChangesListener(String location) {
      this.location = location;
   }

   @ClientCacheEntryCreated
   public void created(ClientCacheEntryCreatedEvent event) {
      if(event.getKey().equals(location)) {
         cache.getAsync(location)
               .whenComplete((temperature, ex) ->
                     System.out.printf(">> Location %s Temperature %s", location, temperature));
      }
   }
}

Data Grid クラスターにリスナーを追加すると、デプロイメントのパフォーマンスの考慮事項が追加されます。

組み込みキャッシュの場合には、リスナーは Data Grid と同じ CPU コアを使用します。多くのイベントを受信し、大量の CPU を使用してこれらのイベントを処理するリスナーは、Data Grid が使用できる CPU を減らし、その他の操作の速度を低下させます。

リモートキャッシュの場合には、Data Grid Server は内部プロセスを使用してクライアント通知をトリガーします。Data Grid Server は、イベントをプライマリー所有者ノードからクライアントに送信する前に、リスナーの登録先のノードに送信します。Data Grid Server には、クライアントリスナープロセスイベントの速度が遅い場合にキャッシュへの書き込み操作を遅延させるバックプレシャーメカニズムも含まれています。

リスナーイベントのフィルタリング

すべての書き込み操作でリスナーが呼び出されると、Data Grid は多数のイベントを生成し、クラスター内にネットワークトラフィックと外部クライアントの両方を作成できます。これらはすべて、各リスナーに登録されているクライアントの数、トリガーするイベントのタイプ、および Data Grid クラスターのデータ変更によって異なります。

リモートキャッシュが設定された例として、イベントを 10 個生成するリスナーで 10 台のクライアントを登録すると、Data Grid Server はネットワーク全体で 100 個のイベントを送信します。

Data Grid Server にカスタムフィルターを指定して、クライアントへのトラフィックを減らすことができます。フィルターを使用すると、Data Grid Server が最初にイベントを処理して、イベントをクライアントに転送するかどうかを判断できます。

継続クエリーおよびリスナー

継続クエリーを行うことで、一致するエントリーのイベントを受信し、クライアントリスナーのデプロイや、リスナーイベントのフィルタリングの代わりとなる手段を提供します。当然、クエリーには、追加の処理コストがかかる点を考慮する必要がありますが、クライアントリスナーではなく、継続クエリーを使用してキャッシュのインデックス化、クエリーの実行を行っている場合には、価値がある場合があります。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る