用户工程的 JAR 为纯抽取 JAR(Spiser 引擎)或者直连和抽取混用 JAR 时,若希望节点宕机不影响工程使用,可参考本文配置热备。
当主节点(active节点)宕机后,子节点可以在短时间内顶替主节点成为新的 active 节点保证工程正常使用。
active 节点的数据每次更新完成之后,standby 节点会自动根据命令同步 active 节点上的表数据(默认初始化配置的 master 节点为 active 节点,子节点为 standby 节点)。
注1:热备支持的集成模式为纯 Spider 引擎或者 Spider 引擎+直连引擎。
注2:本方案仅解决高可用诉求,不具备 BI 请求的负载均衡属性,对 BI 工程并发情况没有优化。
热备步骤如下图所示:
配置热备所需的环境安装包清单如下表所示:
安装配置步骤请参见本文 3.2 节内容
注:如果热备和 单点 一起使用,单点登录不能拦截热备健康检查的URL:/webroot/decision/plugin/public/com.finebi.plugin.bi.hotback/health
1)参考 热备集群环境准备 准备好基础环境。
2)确认工程已经部署在容器中( 例如:Tomcat 要求版本一致且在 8.5 及以上)。
3)构成集群的两个环境所依赖的 JDK 版本要一致。
4)两工程的服务器时间一致。
5)确认主节点工程已经配置外接数据库,若两个工程都配置了外接数据库,则必须为同一个外接数据库。
6)确认两个工程彼此之间以及各自到外接数据库之间的通讯正常。
应用集群必须先将 BI 工程部署到外部容器,这里以 Tomcat 服务器为例。
参考 Tomcat服务器部署 在两个服务器中部署 FineBI 工程。
Tomcat 默认端口为 8080,若系统端口冲突可自行改为其他端口,如示例修改 Tomcat 访问端口为 8818,修改%Tomcat%/conf下的 server.xml 文件,如下图所示:
启动工程之后,配置外接数据库
注:配置作为主节点的工程的外接数据库。
在浏览器中输入访问地址http://IP:端口/webroot/decision,成功打开 BI 工程登录页面,即部署成功。
1)安装 FTP 并启动。详情参见:Linux 系统安装配置 FTP
2)安装 Redis 并启动。详情参见:Linux 系统安装配置单机 Redis
3)安装 Nginx 。详情参见:Linux系统安装配置Nginx 文档第二章内容。
启动之前部署好的主节点,配置集群。
以管理员身份进入数据决策系统,点击「管理系统>智能运维>集群配置」,如下图所示:
打开状态服务器按钮,选择 redis 单机,主机 IP 中填入使用的 redis 所在的服务器地址,端口填写为 3.2 节中修改的端口号,输入密码,测试连接成功即可,如下图所示:
选择「文件服务器共享」进行文件服务器的配置,主机为 3.2 节安装 FTP 的主机 IP,用户名和密码为 3.2 节设置的用户名密码,目录为 3.2 节创建好的 /home/ftpuser/WEB-INF,点击「测试连接并保存」,如下图所示:
注:建议选择「文件服务器共享」。
点击「开启集群」按钮,如下图所示:
关闭主节点工程,拷贝主节点 webroot 至子节点工程 %Tomcat%/webapps下,建议压缩打包后再传输、解压,节省时间。
重启两个节点工程,即可看到两个节点,则部署完成,如下图所示:
想使用 Nginx 搭配 Web 容器发挥负载均衡的作用,必须还要对 Nginx 进行配置。
建议直接下载本节所示的 nginx.conf 文件替换现有的 nginx.conf 文件,根据实际情况修改以下部分内容:
示例:nginx.conf
如下图所示:
工程访问路径默认为:http://ip:端口/工程名/decision,下图中的黄色标记,用户需根据实际情况修改。
例如:工程名为空,则去掉代码中的「/webroot」;工程名为 FR ,则将黄色标记中的 webroot 改为 FR 。
修改端口和 IP 如下图所示:
配置完成后重启 Nginx,执行以下命令
cd /usr/nginx/sbin #进入sbin目录 ./nginx -s reload #启动nginx
在「管理系统>智能运维>集群配置>节点管理」下记住主节点服务器的 hostname 和节点 ID,如下图所示:
集群 master 节点配置:外置数据库中找到 BI 的外置数据库配置表 fine_conf_entity 表,添加以下参数,具体说明如下表所示:
修改定时任务指定节点
集群 master 节点配置:使用 fine_conf_entity可视化配置插件 在 fine_conf_entity 表添加以下参数,具体说明如下表所示:
id 用来规定 Web 集群中的主节点,value 对应主节点服务器的 hostname
热备 master 节点配置
部署完成之后安装热备插件,重启集群,先重启主节点,再重启子节点,二者间隔至少 30s。
注:在某一个节点安装插件即可。
如需获取热备插件,请联系技术支持。技术支持联系方式:QQ「800049425」、电话「400-811-8890」。
热备插件会随主 JAR 的升级自动解压安装覆盖,正常情况下无需手动安装插件:
若升级前未安装热备插件,JAR 包更新到 2021-02-05 及之后版本,启动工程后,将自动安装最新的热备插件。
支持换 JAR 自动替换最新的插件,重启工程后会自动解压安装,可覆盖原插件。
节点有四个概念:master(定义的主节点)、slave(定义的备节点)、active(当前实际的主节点)、standby(当前实际的备节点)。
一般来说,用户环境两个节点机器性能是差不多的,所以一般都是主节点默认成为 active(当前实际的主节点)。但有些情况下,若次节点性能较好,启动得比主节点早,会先抢到锁成为 active ,主节点由于启动得晚会成为 standby 。
在「管理系统>智能运维>平台日志」中点击全局设置,将日志级别调整为 INFO ,点击「保存」,如下图所示:
工程启动,查看 active 节点的启动日志,能看到[HotBack][Startup] register current node as active node : xxx,其中 xxx 为 active 节点的 hostname 。如下图所示:
kill 掉主节点,等待 90s ,检查备节点日志是否打印: register current node as active node : xxx,其中 xxx 是备节点的 hostname(此时备节点已经成为新的 active 节点,主节点重启后会转为 standby 节点),如下图所示:
为防止节点数据同步失败,当节点启动或发生节点切换时,新 active 节点会对节点本地数据进行检测,若检测到本地数据滞后,会对对应的数据表拉起热备数据源更新任务。
问题描述
热备节点启动时如果出现normal not start with 3 or more nodes日志,说明存在 hostname 配置的问题。
需要保证参数配置的 hostname 和节点本地的 hostname 一致才行。
解决方案
注:下面方法适用于 centos7 及之后版本。
1)使用hostname语句查询当前主机名。如下图所示:
2)使用vim /ect/hostname语句编译 hostname 文件,编辑后保存。如下图所示:
3)使用vi /etc/hosts语句修改 hosts 文件,添加一行IP hostname。编辑后保存。如下图所示:
4)使用service network restart重启网络服务或reboot重启系统。如下图所示:
注:有的系统只需重启网络服务即可,若重启网络服务不生效,建议重启系统。
5)使用hostname语句查询修改后的主机名。如下图所示: