EhCache集群方案-JGroups
来源:互联网 发布:gta5 handling漂移数据 编辑:程序博客网 时间:2024/05/19 10:38
EhCache集群方案-JGroups (2012-02-02 16:45)
分类: java
EhCache 是一个纯 Java 的进程内缓存框架。
由于 EhCache 是进程中的缓存系统,一旦将应用部署在集群环境中,每一个节点维护各自的缓存数据,当某个节点对缓存数据进行更新,这些更新的数据无法在其它节点中共享,这不仅会降低节点运行的效率,而且会导致数据不同步的情况发生。所以就需要用到 EhCache 的集群解决方案。
EhCache 从 1.7 版本开始,支持五种集群方案,分别是:
Terracotta
RMI
JMS
JGroups
EhCache Server
JGroups 提供了基于 TCP 的单播 ( Unicast ) 和基于 UDP 的多播 ( Multicast ) ,对应 RMI 的手工配置和自动发现。使用单播方式需要指定其它节点的主机地址和端口,下面是两个节点,并使用了单播方式的配置:
- <cacheManagerPeerProviderFactory
- class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
- properties="connect=TCP(start_port=7800):
- TCPPING(initial_hosts=host1[7800],host2[7800];port_range=10;timeout=3000;
- num_initial_members=3;up_thread=true;down_thread=true):
- VERIFY_SUSPECT(timeout=1500;down_thread=false;up_thread=false):
- pbcast.NAKACK(down_thread=true;up_thread=true;gc_lag=100;
- retransmit_timeout=3000):
- pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;
- print_local_addr=false;down_thread=true;up_thread=true)"
- propertySeparator="::"/>
- <cacheManagerPeerProviderFactory
- class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
- properties="connect=UDP(mcast_addr=10.10.10.10;mcast_port=45566;ip_ttl=32;
- mcast_send_buf_size=120000;mcast_recv_buf_size=80000):
- PING(timeout=2000;num_initial_members=6):
- MERGE2(min_interval=5000;max_interval=10000):
- FD_SOCK:VERIFY_SUSPECT(timeout=1500):
- pbcast.NAKACK(gc_lag=10;retransmit_timeout=3000):
- UNICAST(timeout=5000):
- pbcast.STABLE(desired_avg_gossip=20000):
- FRAG:
- pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;
- shun=false;print_local_addr=true)"
- propertySeparator="::"/>
JGroups 方式对应缓存节点的配置信息如下:
- <cache name="EH_CACHE" maxElementsInMemory="1000000"
- eternal="true" timeToIdleSeconds="0" timeToLiveSeconds="0"
- overflowToDisk="true">
- <cacheEventListenerFactory
- class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
- properties="replicateAsynchronously=true, replicatePuts=true,
- replicateUpdates=true, replicateUpdatesViaCopy=false,
- replicateRemovals=true" />
- </cache>
使用组播方式的注意事项
使用 JGroups 需要引入 JGroups 的 Jar 包以及 EhCache 对 JGroups 的封装包 ehcache-jgroupsreplication-xxx.jar 。
在一些启用了 IPv6 的电脑中,经常启动的时候报如下错误信息:
java.lang.RuntimeException: the type of the stack (IPv6) and the user supplied addresses (IPv4) don't match: /231.12.21.132.
解决的办法是增加 JVM 参数:-Djava.net.preferIPv4Stack=true。如果是 Tomcat 服务器,可在 catalina.bat 或者 catalina.sh 中增加如下环境变量即可:
使用 JGroups 需要引入 JGroups 的 Jar 包以及 EhCache 对 JGroups 的封装包 ehcache-jgroupsreplication-xxx.jar 。
在一些启用了 IPv6 的电脑中,经常启动的时候报如下错误信息:
java.lang.RuntimeException: the type of the stack (IPv6) and the user supplied addresses (IPv4) don't match: /231.12.21.132.
解决的办法是增加 JVM 参数:-Djava.net.preferIPv4Stack=true。如果是 Tomcat 服务器,可在 catalina.bat 或者 catalina.sh 中增加如下环境变量即可:
SET CATALINA_OPTS=-Djava.net.preferIPv4Stack=true
经过实际测试发现,集群方式下的缓存数据都可以在 1 秒钟之内完成到其节点的复制。
经过实际测试发现,集群方式下的缓存数据都可以在 1 秒钟之内完成到其节点的复制。
- EhCache集群方案-JGroups
- ehcache jgroups 集群配置
- EhCache JGroups 集群模式
- ehCache集群JGroups方式配置
- Ehcache 集群示例系列3:JGroups UDP协议方式
- oscache和jgroups实现集群
- ehcache集群
- EhCache集群
- Ehcache集群
- JGroups
- jgroups
- ehcache jgroups同步,节点重启初始化缓存bug.
- ehcache缓存集群
- Ehcache集群环境配置
- Ehcache集群环境配置
- ehcache集群配置
- Ehcache集群环境配置
- Terracotta与EHcache集群
- Effective C++学习笔记 (14)
- Terracotta与EHcache集群
- 【shell】grep
- poj1383 - Labyrinth
- tree list
- EhCache集群方案-JGroups
- 羌笛声声胡笳怨,此心长寄天涯远
- 深入浅出 MVC 数据验证 2.0 [附演示源码]
- 关于Ehcache集群缓存在应用重启后的加载问题
- AIX
- Lock
- 蝴蝶兰与鳞托菊
- Ajax处理XML,XMLHttpRequest对象的创建和访问servlet并返回xml数据到页面展示
- 心醉七夕