4.3. グループ化 API の設定


JBoss Data Grid でグループ化 API を使用するには、最初にグループを有効にします。
プログラミングによる設定

プログラミング可能な API を使用して JBoss Data Grid を設定するには、以下を呼び出します。

Configuration c = new ConfigurationBuilder().clustering().hash().groups().enabled().build();
XML 設定

XML を使用して JBoss Data Grid を設定するには、以下を使用します。

<clustering>
  <hash>
     <groups enabled="true" />
  </hash>
</clustering>
キーのクラス定義が変更可能であり、グループの決定がキークラスに対して直交した関心事でない場合は、組み込みグループを使用します。メソッド内で @Group アノテーションを使用して組み込みグループを指定する場合は、以下のようになります。
class User {
 
   ...
   String office;
   ...
 
   int hashCode() {
      // Defines the hash for the key, normally used to determine location
      ...
   }
 
   // Override the location by specifying a group, all keys in the same
   // group end up with the same owner
   @Group
   String getOffice() {
      return office;
   }
 
}

注記

グループは String である必要があります。
キークラスコントロールがない場合や、グループの決定がキークラスに対して直交した関心事である場合は、外部グループを使用します。外部グループは、Grouper インターフェースを実装して指定します。Grouper インターフェース内の computeGroup メソッドはグループを返します。
Grouper はインターセプターとして動作し、以前に計算された値を computeGroup() メソッドに渡します。定義された場合、@Group は、最初の Grouper に渡されるグループを決定し、組み込みグループを使用したときに改善されたグループコントロールを提供します。
grouper を使用してキーのグループを決定するには、ターゲットキーからその keyType を割り当てることができる必要があります。
以下は Grouper の例です。
public class KXGrouper implements Grouper<String> {
 
   // A pattern that can extract from a "kX" (e.g. k1, k2) style key
   // The pattern requires a String key, of length 2, where the first character is
   // "k" and the second character is a digit. We take that digit, and perform
   // modular arithmetic on it to assign it to group "1" or group "2".
   private static Pattern kPattern = Pattern.compile("(^k)(<a>\\d</a>)$");
 
    public String computeGroup(String key, String group) {
        Matcher matcher = kPattern.matcher(key);
        if (matcher.matches()) {
            String g = Integer.parseInt(matcher.group(2)) % 2 + "";
            return g;
        } else
            return null;
    }
 
    public Class<String> getKeyType() {
        return String.class;
    }
 
}
この例では、単純な grouper がクラスキーを使用して、パターンでキーからグループを抽出します。キークラスで指定された情報は無視されます。各 grouper は登録して使用する必要があります。
プログラミングによる設定

プログラミングにより JBoss Data Grid を設定する場合:

Configuration c = new ConfigurationBuilder().clustering().hash().groups().addGrouper(new KXGrouper()).build();
XML 設定

または、XML を使用して JBoss Data Grid を設定する場合:

<clustering>
  <hash>
     <groups enabled="true">
        <grouper class="com.acme.KXGrouper" />
     </groups>
  </hash>
</clustering>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.