多台服务器集群后,配置权限、数据连接、模板、定时调度等,只能每台服务器一个个配置,不会自动同步到所有服务器。

针对上述情况,在FineReport中提供新集群部署插件,将xml配置文件、finedb/logdb数据(定时任务、报表目录管理、批量导入、统计信息)的修改都对主机生效。其他辅机的信息读取也都从主机读取,保证了数据同步。

实现了灾备,即主机当即后,次主机会上位接替主机的工作,保证系统正常运作。

同时还增加了集群灾备之文件同步,会将主机的finedb、xml、模板、jar包、插件等等备份到其他节点的应用上。支持可以手动同步和自动同步。

插件介绍

设计器插件、服务器插件安装好之后,新集群部署,有主机、次主机、辅机之分,配置文件都从主机读取,辅机只能用作计算引擎分担压力,有点事当改配置文件的时候,不需要每个节点都去修改,直接改主机即可。

分布式集群

分布式集群文件系统:每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点中的文件。

这里测试修改主机的报表管理目录树平台标题,然后可以看到辅机会同步修改的配置。其中报表管理目录树存在finedb中,平台样式的平台标题存在fsconfig.xml中。

  • 环境准备

设置tomcat1、tomcat2、tomcat3集群,tomcat1为主机,tomcat2为辅机,tomcat3为次主机,tomcat集群。

WebReport工程分别放在tomcat下的webapps文件夹里

  • 配置文件

集群配置完成之后,修改将配置包resource文件夹下的cluster.xml打开,如果没有这个文件的话,就新建一个,基本内容如下:

PublicURL是集群默认跳转地址,比如集群时对外地址是自定义端口的, ip:8888/WebReport/ReportServer?op=fs我们并不能获取到这个8888端口,因此这里需要填写实际的ip:端口号,如果这段省略不写,默认跳转80端口。

ServiceName是为tomcat的名字。

IP是该台服务器内网中的IP,就是其它服务器能与之通信的IP。

Port是报表应用的端口号,假如是部署在tomcat下,那么就是tomcat的端口号,默认是8080。例如我们的内置服务器是8079.

WebAppName是报表应用的名称,我们默认的是WebReport。

详细代码如下:

<?xml version="1.0" encoding="UTF-8" ?>

<ClusterConfig useCluster="true">

<PublicURL>

ip:端口

</PublicURL>

<ClusterService  isMain="true">

<ServiceName>tomcat1</ServiceName>

<ip>192.168.101.82</ip>

<port>6080</port>

<WebAppName>WebReport</WebAppName>

</ClusterService>

<ClusterService>

<ServiceName>tomcat3</ServiceName>

<ip>192.168.101.82</ip>

<port>8080</port>

<WebAppName>WebReport</WebAppName>

</ClusterService>

<ClusterService  isVice="true">

<ServiceName>tomcat2</ServiceName>

<ip>192.168.101.82</ip>

<port>7080</port>

<WebAppName>WebReport</WebAppName>

</ClusterService>

</ClusterConfig>

  • 测试

启动工程,等3分钟后,关闭主机,刷新fs和访问模板,此时是失败的,再等待3分钟,主次机上位,再次刷新fs和访问模板,此时是成功的。

集群同步设置

点击管理系统-集群同步,点击设置,选择需要同步的内容:配置文件(resources目录)、模板(reportlets目录)、插件和jar(plugins和lib文件夹),点击确定,然后可以选择手动同步,或者设置定时同步,点击保存即可,如下图:

共享式集群

共享式文件集群系统:多台计算机识别到同样的存储空间,并相互协调共同管理其上的文件,又被称为共享文件系统;

  • 环境准备

设置tomcat1和tomcat2集群,tomcat1为主机,tomcat2为辅机,tomcat集群。

Web项目部署在不同的服务器上,一般服务器都在同一局域网,那么共享式文件集群该如何访问呢?

这里通过共享局域网里某台电脑上的工程文件夹,多个tomcat都从这个共享的工程文件夹里读,如下图:

文件夹共享后,局域网内的服务器均可通过\\IP\文件夹访问共享的工程目录

 

tomcat1和tomcat2下,修改conf里server.xml文件,添加一个Context,指向项目的目录

  • 配置文件

集群配置完成之后,修改将配置包resource文件夹下的cluster.xml打开,如果没有cluster.xml,则新建一个,基本内容如下:

 共享式的集群方式,因为本身就是指向同一个文件夹的,不需要我们来做文件的同步,这里插件的作用是负载均衡。如果需要用到决策平台,需要将finebd迁移到其他数据库,例如MySQL数据库中。
 
 

FineReport关于tomcat集群部署的方案的更多相关文章

  1. 使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享

    一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储Session 2.使用Cookie来存储Session 3.使用Redis ...

  2. Tomcat部署问题,Tomcat集群部署问题。

    1.服务器崩溃,指的是Tomcat程序崩溃,还是服务器系统崩溃? 答:都有可能. 所以一台服务器上部署多个Tomcat可以防止程序崩溃问题.但不能避免服务器崩溃,要避免服务器崩溃,就要采用服务器集群. ...

  3. Nginx+Tomcat集群部署

    为了获取更好的性能,我们常常需要将tomcat进行集群部署.下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞. 应用场景环 ...

  4. tomcat集群部署

    1.apache只有处理静态事物的能力, 而tomcat的强项就是处理动态的请求 2.由apache作为入口,如果是请求静态页面或者是静态文件,由apache直接提供,如果是请求动态页面,则让apac ...

  5. apache+tomcat集群部署笔记

    前提条件 安装gcc,gcc-c++两个编译器 yum install gcc yum install gcc-c++ 接下来开始安装集群相关环境: 1.下载apr,apr-util,pcre,apa ...

  6. Tomcat集群环境下session共享方案 通过memcached 方法实现

    对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点, 大体上有两种方式:一种是把所有Ses ...

  7. 使用Tomcat+Redis来实现集群部署中的Session共享问题

    一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储Session 2.使用Cookie来存储Session 3.使用Redis ...

  8. Nginx+Tomcat+Memcached 实现集群部署时Session共享

    Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...

  9. Tomcat集群+Nginx+Redis服务搭建

    由于公司新业务突然上来了,单个Tomcat实例已经不能满足业务发展的需要了,只能通过搭建集群来解决问题了.所以就出现了下面的内容: 1.Redis保存Session信息 为了保存Session信息在集 ...

随机推荐

  1. B树——算法导论(25)

    B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的, ...

  2. .NetCore MVC中的路由(2)在路由中使用约束

    p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...

  3. 在离线环境中使用.NET Core

    在离线环境中使用.NET Core 0x00 写在开始 很早开始就对.NET Core比较关注,一改微软之前给人的印象,变得轻量.开源.跨平台.最近打算试着在工作中使用.但工作是在与互联网完全隔离的网 ...

  4. 记一个mvn奇怪错误: Archive for required library: 'D:/mvn/repos/junit/junit/3.8.1/junit-3.8.1.jar' in project 'xxx' cannot be read or is not a valid ZIP file

    我的maven 项目有一个红色感叹号, 而且Problems 存在 errors : Description Resource Path Location Type Archive for requi ...

  5. jQuery动画-圣诞节礼物

    ▓▓▓▓▓▓ 大致介绍 下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题 原地址:花式轮播----圣诞礼物传送 思路:动画中一共有五个礼物,他们平均分布在屏幕中,设置 ...

  6. 掌握javascript中的最基础数据结构-----数组

    这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...

  7. 一起学 Java(二)面向对象

    一.方法函数 函数也称为方法,就是定义在类中的具有特定功能的一段独立代码.用于定义功能,提高代码的复用性. 函数的特点1> 定义函数可以将功能代码进行封装,便于对该功能进行复用:2> 函数 ...

  8. [原]Cachedb 网络模块文档

    Cachedb 网络模块文档 整体结构 多路复用 (epoll 模块) 事件驱动 (事件封装) 缓冲管理 (上层buffer管理) 设计思想 层次化的设计,每一个模块只调用上一个模块的接口,并将耦合聚 ...

  9. PHP设计模式(六)原型模式(Prototype For PHP)

    原型设计模式: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型设计模式简单的来说,顾名思义, 不去创建新的对象进而保留原型的一种设计模式. 缺点:原型设计模式是的最主要的缺点就 ...

  10. 电信计费业务:预后融合OCS到底应该实扣还是虚扣?

    引入OCS的初衷之一是为了让计费系统能够参与到用户的通讯控制中来,也就是所谓的实时信控.用户在没有余额时,通讯就会被停止,不会造成"天价欠费 ",一方面保障用户的利益,一方面也保障 ...