1

Infinispanキャッシュを使用して、2つの異なるサーバーに複製されたキャッシュをセットアップしようとしています。

Node1とNode2は、hotrodサーバーが実行されている2つの物理サーバーです。

私の意図は、リモートクライアント(Node3)からnode1 / node2に(カスタム構成で)キャッシュを作成することです。

Node3で、私は次のことを行おうとしています。

RemoteCacheManager rm = new RemoteCacheManager( "node1ip4address"、portNumber); rm.getCache( "namedcache1"); ---->このメソッドのjavadocによると、

/ ** *キャッシュが定義されている場合は、リモートサーバーから名前付きキャッシュを取得します。*定義されていない場合、キャッシュ名が不足している場合はnullを返します。* /

RemoteCacheManagerのソースコードを確認しました。このクラスには、EmbeddedCacheManagerに存在するようなdefineConfiguration()メソッドがありません。

リモートノードにキャッシュを作成する方法はありますか?

ありがとう、-Venkat

4

2 に答える 2

3

いいえ、HotRodプロトコルを介してキャッシュを作成する方法はありません。組み込みモードでも、Infinispanには「すべてのクラスターノードにこのキャッシュを作成する」と言う方法がありません。これは、アクセスしているサーバーがわからないため、HotRodで必要になります。

CacheManager JMX BeanにはstartCacheメソッドがありますが、それでも新しい構成を定義することはできません(デフォルトのキャッシュの構成を使用します)。そして、クラスターのすべてのノードでそれを呼び出す必要があります。

明らかに、サーバーの構成でキャッシュを静的に構成できるとよいでしょう。

于 2012-03-29T09:52:06.773 に答える
2

9990で実行されている管理への残りの呼び出しを使用して、キャッシュを作成できます。

curl --digest -s -i -u "usr:pwd" -X POST -H 'Content-type: application/json' -d @cacheTemplate.json http://serverurl:9990/management

ここで、という名前のコンテナにcacheTemplate.json名前のキャッシュを作成しますcartclustered

{
    "address":[
        "subsystem",
        "datagrid-infinispan",
        "cache-container",
        "clustered",
        "configurations",
        "CONFIGURATIONS",
        "distributed-cache-configuration",
        "cart"
    ],
    "operation":"add",
    "mode":"SYNC",
    "store-type":"None",
    "store-original-type":"None",
    "template":false
}
于 2018-05-15T16:28:31.917 に答える