-1

私は現在、HazelCast キャッシュを jcache オブジェクトと統合して、その標準に基づいて開発を進めようとしています。

多数の異なる構成を統合する必要があるため、hazelcast.xml を作成しました。hazelcast マップ オブジェクト (com.hazelcast.core.IMap) で試したところ、適切な構成でキャッシュを取得できるように動作するようになりました。

private static void initHazelcast() {
        log.info("initHazelcast()");

        Config cfg = null;
        try {
            cfg = new XmlConfigBuilder("./src/main/resources/hazelcast.xml").build();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        hazelcastInstance = Hazelcast.newHazelcastInstance(cfg);

        IMap map = hazelcastInstance.getMap("EXPIR00001");

        log.info("initHazelcast() End");
    }

HazelCast.xml:

<hazelcast  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.hazelcast.com/schema/config http://www.hazelcast.com/schema/config/hazelcast-config-3.9.xsd"
    xmlns="http://www.hazelcast.com/schema/config">
  <map name="EXPIR00001">
    <time-to-live-seconds>1</time-to-live-seconds>
    <max-idle-seconds>1</max-idle-seconds>
    <eviction-policy>LRU</eviction-policy>
    <max-size policy="PER_NODE">5000</max-size>
  </map>
</hazelcast>

ここで、JCache の javax.cache.Cache クラスを使用してみます。

この例を使用していますが、次のように xml 構成を取得しません。

http://docs.hazelcast.org/docs/3.9.3/manual/html-single/index.html#jcache-declarative-configuration および http://docs.hazelcast.org/docs/3.9.3/manual/ html-single/index.html#scoping-to-join-clusters

ヘーゼルキャスト.xml:

<hazelcast  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.hazelcast.com/schema/config http://www.hazelcast.com/schema/config/hazelcast-config-3.9.xsd"
    xmlns="http://www.hazelcast.com/schema/config">

    <cache name="EXPIR00001">
      <backup-count>1</backup-count>
      <async-backup-count>1</async-backup-count>
      <in-memory-format>BINARY</in-memory-format>
      <eviction size="10000" max-size-policy="ENTRY_COUNT" eviction-policy="LRU" />
       <expiry-policy-factory>
                    <timed-expiry-policy-factory expiry-policy-type="CREATED"
                                                    duration-amount="1"
                                                    time-unit="DAYS"/>
       </expiry-policy-factory>
    </cache>

</hazelcast>

メソッド Java:

private static void initHazelcast() {
        log.info("initHazelcast()");

        Config cfg = null;
        try {
            cfg = new XmlConfigBuilder("./src/main/resources/hazelcast.xml").build();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        hazelcastInstance = Hazelcast.newHazelcastInstance(cfg);

        CacheManager manager = Caching.getCachingProvider().getCacheManager();
        //In JCache
        Cache<byte[], byte[]> cache = manager.getCache( "EXPIR00001" );

        log.info("initHazelcast() End");
    }

CacheManager マネージャー hazelcast インスタンスにどのように関連付けることができますか??.マネージャー オブジェクトはキャッシュ ID = "EXPIR00001" を取得しません

xml ファイルから宣言的に構成する必要があります (Hazelcast.xml)。多くの構成があり、必要になる場合があります。

使用できません: http://docs.hazelcast.org/docs/3.9.3/manual/html-single/index.html#hazelcast-jcache

4

2 に答える 2