java 缓存ech_java ehcache 分布式缓存配置实例 .

下面我们动手通过项目来实践下吧.[RMI方式];

基本环境:A 分别创建两个web项目,C1和C2 分别倒入echcache的jar包;

B 本例使用了两个tomcat 分别部署C1和C2

项目配置:C1配置

A

ehcache.xml [ path= src ]

maxElementsInMemory="19"

eternal="false"

timeToIdleSeconds="120"

timeToLiveSeconds="120"

overflowToDisk="true">

class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"

properties="replicateAsynchronously=true,replicatePuts=true, replicateUpdates=true,replicateUpdatesViaCopy=false,replicateRemovals=true"/>

properties="hostName=192.168.10.114, port=40001,socketTimeoutMillis=2000"/>

properties="peerDiscovery=manual,hostName=192.168.10.114,port=40002,rmiUrls=//192.168.10.114:40001/cache|//192.168.10.114:40002/cache,timeToLive=32" />

maxElementsInMemory="1000"

eternal="false"

timeToIdleSeconds="120"

timeToLiveSeconds="120"

overflowToDisk="true"

/>

这样就配置了192.168.10.114:40001和192.168.10.114:40002两个ehcache缓存实例 并且每当其中一个缓存放生改变时通过在

properties="replicateAsynchronously=true,replicatePuts=true, replicateUpdates=true,replicateUpdatesViaCopy=false,replicateRemovals=true" 这些配置策略 可以同步反应到另一个缓存中.从而达到分布式缓存同步的效果.

B web.xml

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:web="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version="2.4">

EhCache Cluster Demo

EhCache Cluster Demo

eccache

ehcache.xml

index.jsp

C. test.jsp

EhCache Cluster Tester

CacheManager m =CacheManager.create();

Cache c = m.getCache("cache");

c.put(new Element("999", "yy"));

out.print(c.getSize()+"__"+c.getKeys().toString());

for(Object o:c.getKeys()){

Object v = c.get(o).getValue();

out.println(o+":"+v);

}

%>

C2配置同P1一致.区别如下:

properties="hostName=192.168.10.114, port=40002,socketTimeoutMillis=2000"/>

properties="peerDiscovery=manual,hostName=192.168.10.114,port=40001,rmiUrls=//192.168.10.114:40002/cache|//192.168.10.114:40001/cache,timeToLive=32" />

text.jsp 代码自定义.

测试方法:

分别启动两个项目:localhost:8001/c1 和localhost:8002/c2 其中C2第一次向自己的缓存中放入内容.然后你访问c1 ,C1则直接从自己的缓存中读取内容显示.

你可以不断改变代码进行测试.

***以上只为简单实践 对于其中参数的配置因地制宜的优化.如何任何错误。欢迎指正!

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

例外hibernate+ehcahce的配置基本同上 配置hibernate实用ehcache后 在代码和hbf配置文件中可以指定使用缓存[setCached(true)]

spring也提供了对ehcache的集成 .给予应用级别 可以缓存调用方法的签名(key).以及其放回结果(value)

ehcahe+Terracotta 可能提供了比较完整的解决方案[ Terracotta 收购了ehcache 而且本身Terracotta 提供了JVM级别的分布式缓存]

这些都是后话.以后有计划继续实践.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值