您的位置:首页 > 其它

润乾升级部署集群缓存同步注意事项

2016-11-22 11:34 260 查看
问题背景:

最近在给某客户进行系统升级至企业版部署集群缓存同步时,遇到了一些概念性的问题,比如润乾的集群缓存同步的实现机制、原理如何?下面就会对顺着该问题进行一些说明解释,方便后续部署润乾报表的集群缓存同步做一个参考。

问题说明:

部署一个润乾报表的集群缓存同步功能,首先我们可以根据《润乾报表4.5性能管理手册.chm》中的3.6. 集群时缓存同步 章节进行配置,摘录如下:

 

概念定义

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

 

功能背景

目前服务器的集群,经常使用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. 重起服务器,即可实现集群时缓存同步。

 

补充配置注意事项:

经过上面的配置,重启服务器访问报表,报表能正常浏览、导出、打印,证明润乾的集群缓存同步就算是成功部署完成!下面需要对配置参数时的一点事项做一个说明:

1、属性clusterMember中,设定端口的条件是该端口是开放的且没有被占用的,仅提供给润乾集群缓存同步时使用。

2、属性isCachedFileShared,该属性在配置开发版或是专业版时也是存在的,在reportConfig.xml中保留设置一个isCachedFileShared属性即可,一般开启设置为yes。

3、属性cachedReportDir,该属性在配置开发版或是专业版时也是存在的,在reportConfig.xml中保留设置一个cachedReportDir属性即可,如果是部署在windows下的集群填写共享文件夹,如果是Linux或Unix操作系统,填写目录路径即可。

4、属性cachedIdPrefix,这个在部署集群缓存同步功能的时候,是可以不设置的,可去除也可保留,如果设置也不会报错。因为在润乾实现集群机制时,该属性不会被调用。

 

附录:

润乾报表集群机制说明:

       下面是润乾对部署完成润乾报表集群缓存同步后的最终效果说明:

1、集群时缓存同步功能只针对同一个客户端切换不同服务器时的操作。

2、当不同客户端访问不同服务器时,其缓存是不会共享的。比如a客户端访问服务器A,b客户端访问服务器B,此时不会把a客户端缓存的报表给b客户端用。

3、但是,不同客户端访问同一个服务器时,缓存依旧共享。比如a和b客户端都正好访问服务器A,那么a缓存的报表可以给b用。

4、不支持2的原因,是性能损失太大,需要把所有集群服务器的缓存列表都取过来翻一遍,所以没有这么设计。而支持1是因为session中会记录开始的缓存在哪台机器的哪个文件,会直接访问,无须翻找,性能要好得多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  缓存 集群 缓存同步