目录

集群时缓存同步

概念定义

客户端在多次访问集群服务器的不同主机时,服务器之间可以进行报表缓存的同步,使得客户端能够返回正确的结果而不需要重新计算。

功能背景

目前服务器的集群,经常使用session同步的功能,在这种情况下,允许同一个客户端,第一次访问A机器,第二次跳转到B机器继续访问,服务器会自动把A机器产生的session的内容复制到B机器上,使得访问正常进行,从而实现服务器之间负载更加均衡。

润乾报表的缓存是在硬盘上做的,于是当客户端第一次访问A机器时产生的报表保存在A机器的缓存目录下,第二次访问跳转到B机器时,就无法获取缓存报表了,为了解决这个问题,我们采用了缓存同步的功能。

使用方法

1、在润乾web应用根目录下的WEB-INF/reportConfig.xml文件中进行配置,可配置的属性包括:

<config>  <!--  配置缓存机器和缓存端口号-->      <name>clusterMember</name>      <value>A,192.168.0.59,8087;B,192.168.0.48,8087;</value>    </config> <config>  <!--  配置是否共享缓存目录-->      <name>isCachedFileShared</name>      <value>yes</value>   </config> <config>  <!--  配置缓存共享目录-->       <name>cachedReportDir</name>       <value>\\192.168.0.59\cached</value>   </config><config>  <!--  配置缓存id的前缀,注意集群时不同机器用不同的前缀-->        <name>cachedIdPrefix</name>        <value>A</value>     </config>

其中clusterMember属性指定了系统缓存前缀,所有集群的服务器结点,每个服务器结点与缓存服务器间的通讯接口。它的格式是:“缓存前缀,IP,端口;…”。第二个重要属性是isCachedFileShared,它的取值范围是yes或者no,由它控制是否使用共享的缓存目录。如果它的值为yes,那么必须设置cachedReportDir属性的值为一个可读写的访问路径。

2. 重起服务器,即可实现集群时缓存同步。