在集群环境中使用 EhCache 缓存系统|RMI 集群模式
RMI 是 Java 的一种远程方法调用技术,是一种点对点的基于 Java 对象的通讯方式。EhCache 从 1.2 版本开始就支持 RMI 方式的缓存集群。在集群环境中 EhCache 所有缓存对象的键和值都必须是可序列化的,也就是必须实现 java.io.Serializable 接口,这点在其它集群方式下也是需要遵守的。
采用 RMI 集群模式时,集群中的每个节点都是对等关系,并不存在主节点或者从节点的概念,因此节点间必须有一个机制能够互相认识对方,必须知道其它节点的信息,包括主机地址、端口号等。EhCache 提供两种节点的发现方式:手工配置和自动发现。手工配置方式要求在每个节点中配置其它所有节点的连接信息,一旦集群中的节点发生变化时,需要对缓存进行重新配置。
由于 RMI 是 Java 中内置支持的技术,因此使用 RMI 集群模式时,无需引入其它的 Jar 包,EhCache 本身就带有支持 RMI 集群的功能。使用 RMI 集群模式需要在 ehcache.xml 配置文件中定义 cacheManagerPeerProviderFactory 节点。假设集群中有两个节点,分别对应的 RMI 绑定信息是: 节点 1 192.168.0.11 4567 /oschina_cache 节点 2 192.168.0.12 4567 /oschina_cache 节点 3 192.168.0.13 4567 /oschina_cache
那么对应的手工配置信息如下:
<cacheManagerPeerProviderFactoryclass="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"properties="hostName=localhost,port=4567,socketTimeoutMillis=2000,peerDiscovery=manual,rmiUrls=//192.168.0.12:4567/oschina_cache|//192.168.0.13:4567/oschina_cache"
/>
其它节点配置类似,只需把 rmiUrls 中的两个 IP 地址换成另外两个节点对应的 IP 地址即可。
接下来在需要进行缓存数据复制的区域(Region)上配置如下即可:
<cache name="sampleCache2"maxElementsInMemory="10"eternal="false"timeToIdleSeconds="100"timeToLiveSeconds="100"overflowToDisk="false"><cacheEventListenerFactoryclass="net.sf.ehcache.distribution.RMICacheReplicatorFactory"properties="replicateAsynchronously=true,replicatePuts=true,replicateUpdates=true,replicateUpdatesViaCopy=false,replicateRemovals=true "/>
</cache>
具体每个参数代表的意义请参考 EhCache 的手册,此处不再详细说明。
EhCache 的 RMI 集群模式还有另外一种节点发现方式,就是通过多播( multicast )来维护集群中的所有有效节点。这也是最为简单而且灵活的方式,与手工模式不同的是,每个节点上的配置信息都相同,大大方便了节点的部署,避免人为的错漏出现。 在上述三个节点的例子中,配置如下:
<cacheManagerPeerProviderFactoryclass="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,multicastGroupPort=4446, timeToLive=32"
/>
其中需要指定节点发现模式 peerDiscovery 值为 automatic 自动;同时组播地址可以指定 D 类 IP 地址空间,范围从 224.0.1.0 到 238.255.255.255 中的任何一个地址。
作者:Mr.zhang&Ms.s
转载于:https://www.cnblogs.com/lowerCaseK/p/Ehcache_rmi.html
在集群环境中使用 EhCache 缓存系统|RMI 集群模式相关推荐
- powerha_在IBM PowerHA集群环境中实现存储数据的服务器端缓存
本文介绍了如何将IBMPowerHA®集群配置为使用定制的应用程序脚本为应用程序提供高可用性(HA)时,如何在IBM®AIX®操作系统上启用服务器端存储数据缓存 . AIX提供AIX 7.1 TL4 ...
- 在集群环境中安装sql2005的sp2
打开从微软网站下载好的补丁,就看下面图片的安培过程吧: 注意:此补丁要在当前活动的节点上运行才有效,在其它非活动节点安装无效. 注意:上页面列出此集群环境中所有的sql服务器,在这里选择所有的,就是给 ...
- 大数据之-Hadoop完全分布式_集群中分发脚本xsync_集群环境中同时配置大量主机---大数据之hadoop工作笔记0033
然后我们来说一下,如果在集群环境中动不动,10000以上台主机,那么这个时候 我们怎么去配置,不能一台一台的去配置,我们可以这样. 使用xsync来进行文件同步. 这个时候我们需要一个基于xsync编 ...
- javaweb项目搭建ehcache缓存系统
转载自 javaweb项目搭建ehcache缓存系统 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider,同时在项目开发中 ...
- 在Docker中安装Home Assistant系统(以群晖系统为例)【Home Assistant入门安装篇1-2】
Home Assistant入门1-2:在Docker中安装Home Assistant系统(以群晖系统为例) 写在前面 我在家装有一个PVE虚拟机,里面装有一个黑群晖,最近在学习Home Assis ...
- java redis 生成唯一id_Redis在集群环境中生成唯一ID
概述 设计目标:每秒最大生成10万个ID,ID单调递增且唯一.Reidis可以不需要持久化ID. 要求:集群时钟不能倒退. 总体思路:集群中每个节点预生成生成ID:然后与redis的已经存在的ID做比 ...
- RAC环境中部署OGG,并使用集群管理OGG资源
RAC环境中部署OGG 环境:2节点rac(testrac1,testrac2) 概述:2节点分别部署ogg,可以把dirdat.dirchk等文件放在共享存储,使得所有节点都能访问.使用GI来管理o ...
- 在Spring、Hibernate中使用Ehcache缓存
前一篇http://blog.csdn.net/ibm_hoojo/article/details/7739181介绍了Ehcache整合Spring缓存,使用页面.对象缓存:这里将介绍在Hibern ...
- [原创]mybatis中整合ehcache缓存框架的使用
mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...
最新文章
- MySQL 5.1 的作业调度
- Python装饰器与面向切面编程
- POJ 1789248512583026
- 图像基础知识 —— Opencv图像处理
- 全国计算机一级12月考试答案,12月到12月全国高校计算机等级考试(广西考区)一级笔试真题及答案...
- Stepper MNKit
- Kali下TheFatRat工具的安装教程
- 配置ext邮箱服务器,Extmail实现邮件服务器
- 自定义敏感词检测器_使用转移学习创建自己的自定义对象检测器
- 残差的正态性检验——概率图和QQ-plot图
- 滴答乐园一直显示连接服务器,滴答乐园iOS版-滴答乐园快手互粉2020苹果iOS版预约 v1.0-优盘手机站...
- oracle函数按周,关于oracle按日周月分组统计以及next_day()函数详解
- seo 站内发表文章
- 18春计算机基础在线作业,东大18春《计算机基础》在线作业二.doc
- WebSocket与消息推送
- Studio One 5机架设置一键切换效果通道
- CSS3 旋转的八卦图
- 《Windows CE嵌入式开发入门——基于Xscale架构》 第9章 Windows CE BSP及驱动程序结构分析
- 录制视频文件太大,无损压缩技巧分享
- LeetCode 231: Power of Two