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 集群模式相关推荐

  1. powerha_在IBM PowerHA集群环境中实现存储数据的服务器端缓存

    本文介绍了如何将IBMPowerHA®集群配置为使用定制的应用程序脚本为应用程序提供高可用性(HA)时,如何在IBM®AIX®操作系统上启用服务器端存储数据缓存 . AIX提供AIX 7.1 TL4 ...

  2. 在集群环境中安装sql2005的sp2

    打开从微软网站下载好的补丁,就看下面图片的安培过程吧: 注意:此补丁要在当前活动的节点上运行才有效,在其它非活动节点安装无效. 注意:上页面列出此集群环境中所有的sql服务器,在这里选择所有的,就是给 ...

  3. 大数据之-Hadoop完全分布式_集群中分发脚本xsync_集群环境中同时配置大量主机---大数据之hadoop工作笔记0033

    然后我们来说一下,如果在集群环境中动不动,10000以上台主机,那么这个时候 我们怎么去配置,不能一台一台的去配置,我们可以这样. 使用xsync来进行文件同步. 这个时候我们需要一个基于xsync编 ...

  4. javaweb项目搭建ehcache缓存系统

    转载自  javaweb项目搭建ehcache缓存系统 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider,同时在项目开发中 ...

  5. 在Docker中安装Home Assistant系统(以群晖系统为例)【Home Assistant入门安装篇1-2】

    Home Assistant入门1-2:在Docker中安装Home Assistant系统(以群晖系统为例) 写在前面 我在家装有一个PVE虚拟机,里面装有一个黑群晖,最近在学习Home Assis ...

  6. java redis 生成唯一id_Redis在集群环境中生成唯一ID

    概述 设计目标:每秒最大生成10万个ID,ID单调递增且唯一.Reidis可以不需要持久化ID. 要求:集群时钟不能倒退. 总体思路:集群中每个节点预生成生成ID:然后与redis的已经存在的ID做比 ...

  7. RAC环境中部署OGG,并使用集群管理OGG资源

    RAC环境中部署OGG 环境:2节点rac(testrac1,testrac2) 概述:2节点分别部署ogg,可以把dirdat.dirchk等文件放在共享存储,使得所有节点都能访问.使用GI来管理o ...

  8. 在Spring、Hibernate中使用Ehcache缓存

    前一篇http://blog.csdn.net/ibm_hoojo/article/details/7739181介绍了Ehcache整合Spring缓存,使用页面.对象缓存:这里将介绍在Hibern ...

  9. [原创]mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

最新文章

  1. MySQL 5.1 的作业调度
  2. Python装饰器与面向切面编程
  3. POJ 1789248512583026
  4. 图像基础知识 —— Opencv图像处理
  5. 全国计算机一级12月考试答案,12月到12月全国高校计算机等级考试(广西考区)一级笔试真题及答案...
  6. Stepper MNKit
  7. Kali下TheFatRat工具的安装教程
  8. 配置ext邮箱服务器,Extmail实现邮件服务器
  9. 自定义敏感词检测器_使用转移学习创建自己的自定义对象检测器
  10. 残差的正态性检验——概率图和QQ-plot图
  11. 滴答乐园一直显示连接服务器,滴答乐园iOS版-滴答乐园快手互粉2020苹果iOS版预约 v1.0-优盘手机站...
  12. oracle函数按周,关于oracle按日周月分组统计以及next_day()函数详解
  13. seo 站内发表文章
  14. 18春计算机基础在线作业,东大18春《计算机基础》在线作业二.doc
  15. WebSocket与消息推送
  16. Studio One 5机架设置一键切换效果通道
  17. CSS3 旋转的八卦图
  18. 《Windows CE嵌入式开发入门——基于Xscale架构》 第9章 Windows CE BSP及驱动程序结构分析
  19. 录制视频文件太大,无损压缩技巧分享
  20. LeetCode 231: Power of Two

热门文章

  1. Python中布尔类型
  2. 做一个有趣的有意思的人
  3. VS2005的几款代码皮肤。
  4. ASP.NET中对STA COM组件的不正确调用产生的w3wp远程DoS
  5. FTP下载文件中文名乱码FTP访问
  6. SpringBoot集成Maven工程
  7. docker compose详解
  8. BookKeeper总结
  9. 首先请与所有现有链接到该网络共享的映射断开连接_疫情之下:该如何使用Python预测员工流失,老板直呼内行!...
  10. 生产者消费者案例java代码