tomcat集群部署情况说明
两台web服务器,每台服务器部署两个tomcat
server1 192.168.178.101
tomcat1 tomcat2
server2 192.168.178.102
tomcat3 tomcat4
采用ehcache的rmi方式来实现缓存同步复制
方式一:自动发现集群成员
ehcache.xml配置如下:
<?xmlversion="1.0"encoding="utf-8"?>
<ehcachexmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xsi:nonamespaceschemalocation="ehcache.xsd"
updatecheck="true"monitoring="autodetect"
dynamicconfig="true">
<cachemanagerpeerproviderfactory
class="net.sf.ehcache.distribution.rmicachemanagerpeerproviderfactory"
properties="peerdiscovery=automatic,
multicastgroupaddress=230.0.0.1,
multicastgroupport=4446
timetolive=1"/>
<cachemanagerpeerlistenerfactory
class="net.sf.ehcache.distribution.rmicachemanagerpeerlistenerfactory"/>
<cachename="cache1"
maxelementsinmemory="100"
eternal="true"
overflowtodisk="false"
memorystoreevictionpolicy="lfu">
<cacheeventlistenerfactoryclass="net.sf.ehcache.distribution.rmicachereplicatorfactory"/>
</cache>
</ehcache>
ps:
a、配置简单,每个tomcat使用完全相同的ehcache配置;
b、通过多播( multicast )来维护集群中的所有有效节点。这也是最为简单而且灵活的方式,与手工模式不同的是,每个节点上的配置信息都相同,大大方便了节点的部署,避免人为的错漏出现。
c、timetolive的值指的是数据包可以传递的域或是范围。约定如下:
0是限制在同一个服务器
1是限制在同一个子网
32是限制在同一个网站
64是限制在同一个region
128是限制在同一个大洲
255是不限制
在java实现中默认值是1,也就是在同一个子网中传播。改变timetolive属性可以限制或是扩展传播的范围。
d、自动的peer discovery与广播息息相关。广播可能被路由阻拦,像xen和vmware这种虚拟化的技术也可以阻拦广播(阿里云主机好像也不提供广播,阿里云服务器上部署时可采用手动配置成员发现)。
如果这些都打开了,你可能还在要将你的网卡的相关配置打开。一个简单的办法可以告诉广播是否有效,那就是使用ehcache remote debugger来看“心跳”是否可用。
方式二:手动配置发现集群成员
ehcache.xml配置如下:
<?xmlversion="1.0"encoding="utf-8"?>
<ehcachexmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xsi:nonamespaceschemalocation="ehcache.xsd"
updatecheck="true"monitoring="autodetect"
dynamicconfig="true">
<!–rmi方式二:手动成员发现配置:ip 端口号,手动指定需要同步的server和cachename–>
<cachemanagerpeerproviderfactory
class="net.sf.ehcache.distribution.rmicachemanagerpeerproviderfactory"
properties="peerdiscovery=manual,
rmiurls=
//192.168.178.101:50001/cache1|
//192.168.178.101:50001/cache2|
//192.168.178.102:40001/cache1|
//192.168.178.102:40001/cache2|
//192.168.178.102:50001/cache1|
//192.168.178.102:50001/cache2"/>
<cachemanagerpeerlistenerfactory
class="net.sf.ehcache.distribution.rmicachemanagerpeerlistenerfactory"
properties="hostname=192.168.178.101,port=40001,sockettimeoutmillis=2000"/>
<cachename="cache1"
maxelementsinmemory="1000"
eternal="true"
overflowtodisk="false"
memorystoreevictionpolicy="lfu">
<cacheeventlistenerfactory
class="net.sf.ehcache.distribution.rmicachereplicatorfactory"
properties="
replicateasynchronously=true,
replicateputs=true,
replicateupdates=true,
replicateupdatesviacopy=false,
replicateremovals=true"/>
<!–用于在初始化缓存,以及自动设置–>
<bootstrapcacheloaderfactoryclass="net.sf.ehcache.distribution.rmibootstrapcacheloaderfactory"/>
</cache>
<cachename="cache2"
maxelementsinmemory="2000"
eternal="true"
overflowtodisk="false"
memorystoreevictionpolicy="lfu">
<cacheeventlistenerfactory
class="net.sf.ehcache.distribution.rmicachereplicatorfactory"
properties="
replicateasynchronously=true,
replicateputs=true,
replicateupdates=true,
replicateupdatesviacopy=false,
replicateremovals=true"/>
<!–用于在初始化缓存,以及自动设置–>
<bootstrapcacheloaderfactoryclass="ne
阿里云服务器如何更换系统镜像网站备案文化 前置审批怎么办量身定制不是区别网站建设是否高端的主要标准阿里云服务器和自建服务器的区别世界人工智能大会2020云端峰会开幕 亚马逊云服务全面推动机器学习创新应用请开启网站百度云防护已打开linux怎么安装云服务器配置空间转香港空间麻烦打开网站