Finereport集群配置
增加配置文件cluster.xml
将配置包resource文件夹下的cluster.xml打开,如果没有cluster.xml,则新建一个,基本内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<ClusterConfig useCluster="true"> //useCluster=”true”表示启用集群配置
<ClusterService>
<ServiceName>A</ServiceName> //给这台服务器取一个区别于其他机器的别名
<ip>192.168.0.1</ip> //这台服务器在内网中的IP地址
<port>8080</port> //报表应用的端口
<WebAppName>WebReport</WebAppName> //报表应用的名称
</ClusterService>
<ClusterService>
<ServiceName>B</ServiceName>
<ip>192.168.0.2</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
</ClusterConfig>
这里的每个ClusterService都是集群中一台服务器的相关信息。配置好后,系统会根据自身的IP和端口号去匹配找到相应的信息。当然也可能会有一些原因导致系统无法正确的匹配找到。这时您可以设置isSelf属性来指定自身的属性。
注:xml文件的第一行<??>前面不能有空格,并且请注意xml文件的编码。
另:xml文件的保存格式是 utf-8 no Bom的格式。一般用写字板打开配置包下的cluster.xml文件,修改保存就可以。
示例
例如这个配置文件部署在A服务器下,那么ServiceName为A的那个ClusterService节点后加一个属性 isSelf=”true”,表示下这是本机的信息。如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<ClusterConfig useCluster="true" userShare="true">
<ClusterService isSelf="true"> //A服务器的配置信息,后面增加了属性isSelf=”true”表示本机
<ServiceName>A</ServiceName>
<ip>192.168.0.1</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
<ClusterService> //B服务器的配置信息
<ServiceName>B</ServiceName>
<ip>192.168.0.2</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
</ClusterConfig>
ServiceName是为一台服务器取的别名,只是为了区别标记一下。最好简单方便,如A、B、C或者A1、A2等。注意!不能是中文。
IP是该台服务器内网中的IP,就是其它服务器能与之通信的IP。
Port是报表应用的端口号,假如是部署在tomcat下,那么就是tomcat的端口号,默认是8080.例如我们的内置服务器是8079.
WebAppName是报表应用的名称,我们默认的是WebReport。
那么,B服务器下的cluster.xml的配置信息如下:
<?xml version="1.0" encoding="UTF-8" ?>
<ClusterConfig useCluster="true" userShare="true">
<ClusterService> //A服务器的配置信息
<ServiceName>A</ServiceName>
<ip>192.168.0.1</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
<ClusterService isSelf="true"> //B服务器的配置信息,后面增加了属性isSelf=”true”表示本机
<ServiceName>B</ServiceName>
<ip>192.168.0.2</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
</ClusterConfig>
那么正确的配置结果,就是在A服务器上,假如有浏览器,浏览器中输入
http://192.168.0.2:8080/WebReport/ReportServer?reportlet=xxx.cpt ,就能访问到B服务器上的报表应用。这个url中的IP、端口号和web应用名称就是上面配置信息里的。注:xxx.cpt只是举个例子
那综上说明,假如集群中多了一台C服务器,给它取个别名就叫C。内网IP是192.168.0.3,装了tomcat,端口默认是8080。报表应用名称也是默认是WebReport。那么服务器下的配置文件,应该如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<ClusterConfig useCluster="true" userShare="true">
<ClusterService>
<ServiceName>A</ServiceName>
<ip>192.168.0.1</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
<ClusterService>
<ServiceName>B</ServiceName>
<ip>192.168.0.2</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
<ClusterService>
<ServiceName>C</ServiceName>
<ip>192.168.0.3</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
</ClusterConfig>
最后,请根据上面的格式,写好cluster.xml文件,且将其拷贝到各服务器的报表应用(WEB-INF\resources)文件夹下。当然,有isSelf属性指定的特定服务器的配置文件,还需保存到相应的服务器路径下。
测试配置是否生效
当集群中的服务器都已经按照上述步骤配置好,且重新启动报表应用后,测试各个服务器之间的通讯是否正常。
例如,在A服务器下,先本机测试下报表能否访问,测一张简单的模板就行。能正常访问(ie浏览器可能需要将其localhost或127.0.0.1的本机地址,添加到信任站点中才能显示页面),接着在浏览器上输入:http://localhost:8080/WebReport/ReportServer?op=fr_cluster&cmd=test_c_all
上述url地址,其前面的部分,按情况换上相应报表应用的端口号和应用名称。而后,假如本机设置正常,就能看到如下的信息:(以上述A、B两台服务器的配置文件举例)
Cluster is start
SELF:
ServiceName:B
IP:192.168.100.227
PORT:8080
WebAppName:WebReport
Other Server List:
NO1: ServiceName:A = 192.168.100.227:7080/WebReport
------------------------------------------
Test it(op = cluster_test) - RE:
Cluster is start!
Cluster Share is not start!
SELF:
ServiceName:A
IP:192.168.100.227
PORT:7080
WebAppName:WebReport
Other Server List:
NO1: ServiceName:B = 192.168.100.227:8080/WebReport
这样说明,配置生效,A服务器能与B服务器间能够互相通信。再次查看下信息是否有误。
假如显示:Cluster is close!,那说明该机的配置没有生效。请检查配置文件后,重新启动应用,且再次依照上面步骤测试,直至出现上面的结果为止。
假如前面一部分显示是这样:
Cluster is start!
Can not find Own Service Info.
LocalIP:192.168.0.39
LocalPort:8070。
说明集群配置了,但系统无法根据自身找到的IP和端口匹配到配置文件中的信息。而系统找到的IP是192.168. 0.39,端口是8070。可能您配置成了192.168.0.38:8080,那系统就找不到相应的节点信息了。当然由于各种原因,可能系统无法拿到正确的IP和端口,这时请您检查后,设置正确的IP和端口后,在相应的ClusterService的节点上加isSelf属性(isSelf=”true”)。
假如,SELF下的信息不正确,或没有信息,也请检查配置文件。
假如,下面列出的其它机器的信息不正确,或有遗漏,也请检查配置信息后,重启报表应用重试。
假如,其它服务器的回应,没有回应OK,例如回应Connection timed out: connect。请检查下那台服务器的配置信息,检查网络连接,ping下那台机器的ip地址,看看是否能ping通。然后查看那台服务器报表应用的端口和应用名称,是否设置正确。
可在浏览器中,输入地址直接在内网中访问下那台机上的报表应用,看看设置的ip、端口号等是否设置正确。修改后,重新启动报表应用,重试。
结束
当以上检查步骤结束。所有服务器都检查,发现正确后。恭喜,配置就完成了。
来源:http://jingyan.baidu.com/article/91f5db1b323b8d1c7f05e3b9.html
Finereport集群配置的更多相关文章
- Ubuntu 14.04中Elasticsearch集群配置
Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...
- Redis 3.0 Cluster集群配置
Redis 3.0 Cluster集群配置 安装环境依赖 安装gcc:yum install gcc 安装zlib:yum install zib 安装ruby:yum install ruby 安装 ...
- MongoDB高可用集群配置的方案
>>高可用集群的解决方案 高可用性即HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性. ...
- MySQL Cluster 7.3.5 集群配置实例(入门篇)
一.环境说明: CentOS6.3(32位) + MySQL Cluster 7.3.5,规划5台机器,资料如下: 节点分布情况: MGM:192.168.137. NDBD1:192.168.137 ...
- MySQL Cluster 7.3.5 集群配置参数优化(优化篇)
按照前面的教程:MySQL Cluster 7.3.5 集群配置实例(入门篇),可快速搭建起基础版的MySQL Cluster集群,但是在生成环境中,还是有很多问题的,即配置参数需要优化下, 当前生产 ...
- 关于ActiveMQ的几种集群配置
ActiveMQ的几种集群配置. Queue consumer clusters 此集群让多个消费者同时消费一个队列,若某个消费者出问题无法消费信息,则未消费掉的消息将被发给其他正常的消费者,结构图如 ...
- solrCloud+tomcat+zookeeper集群配置
solrcolud安装solrCloud+tomcat+zookeeper部署 转载请出自出处:http://eksliang.iteye.com/blog/2107002 http://eksli ...
- RabbitMq 集群配置
1. RabbitMQ 所需的附属安装包 1.1 openGL安装 执行命令: [root@localhost local]# yum install mesa-libGL-devel mesa-l ...
- Spring+quartz 实现定时任务job集群配置
为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...
随机推荐
- 为tomcat动态添加jndi数据源信息
我们在开发项目的时候,总要和数据库打交道,如何获取数据源,以什么样的方式来获取,成为了我们即简单又熟悉而且不得不注意的一个问题. 那么在这里我说三种获取数据源的常用方式: 一.通过配置文件来获取 首先 ...
- install cx_Oracle on Linux
step 1 : install oracle client library url: http://www.oracle.com/technetwork/topics/linuxsoft-08280 ...
- 编译安装带ssl 模块指定版本Python
出现这个或者fatal error: openssl/名单.h: No such file or directory.都是没有安装libssl-dev- libssl-dev包含libraries ...
- Map小结
Map主要用于存储健值对个人理解:因为Map是根据键得到值,因此需要保证键值的唯一性,不允许键重复(重复了覆盖了),但允许值重复.1.HashMap根据键的HashCode 值存储数据,根据键可以直接 ...
- Python 装饰器学习
Python装饰器学习(九步入门) 这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 1 2 3 4 5 6 7 8 # -*- c ...
- socket 网络编程
1. 基础socket库 socket.h: /** * 网络套接字库 */ #ifndef Socket_h #define Socket_h #include <stdio.h> #i ...
- Translucent Bar Android状态栏自定义颜色
Android4.4 一个很重要的改变就是透明系统栏..新的系统栏是渐变透明的, 可以最大限度的允许屏幕显示更多内容, 也可以让系统栏和 Action Bar 融为一体, 仅仅留下最低限度的背景保护以 ...
- python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python3.5 manage.py runserver python Django教程 之模板渲染.循环.条件判断.常用的标签.过滤器 一.Django模板渲染模板 1. 创建一个 zqxt_tm ...
- STL学习 - map
C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值. 一.map的说明 1 头文件 #include <map> 2 ...
- 解决linux yum无法安装mysql
yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 wget http://repo.mysql.com/mysql-com ...