EhCacheクラスタ環境でのキャッシュシステムの使用
10593 ワード
EhCache分散キャッシュ/キャッシュ・クラスタEhCacheは、多くのソリューションを提供しています.ここでは、最も一般的で簡単なRMI方式の分散キャッシュ・ソリューションについて説明します.
Automatic Peer Discovery自動メンバー検出方式
1まずマルチキャストアドレスConfiguring the Peer Providerを構成する【自動メンバー発見server 1とserver 2の構成が同じであることに注意】
2次に、CacheManagerPeerListenerを構成して、他のクラスタ・サーバからのメッセージを受信する
3キャッシュが必要なcacheにコンフィギュレーションCache Replicators起動クラスタを設定する
Manual Peer Discovery{#Manual Peer Discovery}手動メンバー発見
クラスタに2台のサーバがあるとします.sampleCache 1とsampleCache 2を同期します.各サーバに必要な構成は、server 1の構成です.
サーバ2の構成
次に上の赤2,3の手順を配置すればいいです.
CacheManagerPeerListener上の手順2の構成説明
コンフィギュレーションCache Replicators上の構成3の説明
https://www.ibm.com/developerworks/cn/java/j-lo-ehcache/関連記事
http://www.cnblogs.com/hoojo/archive/2012/07/19/2599534.html関連記事
http://ehcache.org/documentation/replication/rmi-replicated-caching公式ドキュメント
Automatic Peer Discovery自動メンバー検出方式
TCP 。 。 , 。
“ ”。 5 。 “ ” 。
cache 。
1まずマルチキャストアドレスConfiguring the Peer Providerを構成する【自動メンバー発見server 1とserver 2の構成が同じであることに注意】
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,
multicastGroupPort=4446, timeToLive=32"/>
2次に、CacheManagerPeerListenerを構成して、他のクラスタ・サーバからのメッセージを受信する
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=192.168.1.253, port=40001,
socketTimeoutMillis=2000"/>
1 hostName=192.168.1.253 IP
3キャッシュが必要なcacheにコンフィギュレーションCache Replicators起動クラスタを設定する
<cache name="MyCache"
maxElementsInMemory="50"
eternal="true"
>
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
</cache>
Manual Peer Discovery{#Manual Peer Discovery}手動メンバー発見
IP 。 。 , 。 , server2 server1, server1 server2。
クラスタに2台のサーバがあるとします.sampleCache 1とsampleCache 2を同期します.各サーバに必要な構成は、server 1の構成です.
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual,
rmiUrls=//server2:40001/MyCache|//server2:40001/ name"/>
サーバ2の構成
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual,
rmiUrls=//server1:40001/MyCache|//server1:40001/ name"/>
次に上の赤2,3の手順を配置すればいいです.
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=192.168.1.253, port=40001,
socketTimeoutMillis=2000"/>
<cache name="MyCache"
maxElementsInMemory="50"
eternal="true"
>
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
</cache>
。
rmiUrls=//server1:40001/MyCahce|//server1:40001/ "
MyCache.
CacheManagerPeerListener上の手順2の構成説明
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=localhost, port=40001,
socketTimeoutMillis=2000"/>
properties :
hostname ( ) – 。 , 。
CacheManager hostname 。
hostName ,CacheManager 。
,hostname InetAddress.getLocalHost().getHostAddress() 。
: localhost 127.0.0.1, 。 CacheManager , localhost 。
port – 。
socketTimeoutMillis ( ) – Socket 。 2000ms。 socket , 。 , 。
コンフィギュレーションCache Replicators上の構成3の説明
<cache name="sampleCache2"
maxEntriesLocalHeap="10"
eternal="false"
timeToIdleSeconds="100"
timeToLiveSeconds="100"
overflowToDisk="false">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,
replicateUpdatesViaCopy=false, replicateRemovals=true "/>
</cache>
class – net.sf.ehcache.distribution.RMICacheReplicatorFactory
:
replicatePuts=true | false – peers. true。
replicateUpdates=true | false – 。 true。
replicateRemovals= true | false – 。 true。
replicateAsynchronously=true | false – ( true ) ( false )。 true。
replicatePutsViaCopy=true | false – cache true , true。
replicateUpdatesViaCopy=true | false – cache ( true ), true。
ehcache , ; RMICacheReplicatorFactory :
<cache name="sampleCache4"
maxEntriesLocalHeap="10"
eternal="true"
overflowToDisk="false"
memoryStoreEvictionPolicy="LFU">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
</cache>
https://www.ibm.com/developerworks/cn/java/j-lo-ehcache/関連記事
http://www.cnblogs.com/hoojo/archive/2012/07/19/2599534.html関連記事
http://ehcache.org/documentation/replication/rmi-replicated-caching公式ドキュメント