集群时缓存同步
概念定义
客户端在多次访问集群服务器的不同主机时,服务器之间可以进行报表缓存的同步,使得客户端能够返回正确的结果而不需要重新计算。
功能背景
目前服务器的集群,经常使用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. 重起服务器,即可实现集群时缓存同步。