历史版本21 :热备部署步骤 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineBI 版本
JAR 包版本新增功能
5.1.72020-11-05
支持热备部署,热备插件需要向技术支持获取
5.1.10
2021-02-05热备插件内置到 JAR 包中,更新 JAR 时自动安装最新的热备插件;配置 fine_conf_entity 表时,新增参数:hotBackConf.slave

1.2 应用场景

用户工程的 JAR 为纯抽取 JAR(Spiser 引擎)或者直连和抽取混用 JAR 时,若希望节点宕机不影响工程使用,可参考本文配置热备。

1.3 功能简介

  • 当主节点(active节点)宕机后,子节点可以在短时间内顶替主节点成为新的 active 节点保证工程正常使用。

  • active 节点的数据每次更新完成之后,standby 节点会自动根据命令同步 active 节点上的表数据(默认初始化配置的 master 节点为 active 节点,子节点为 standby 节点)。

注1:热备支持的集成模式为纯 Spiser 引擎或者 Spider 引擎+直连引擎。

注2:本方案仅解决高可用诉求,不具备 BI 请求的负载均衡属性,对 BI 工程并发情况没有优化。

1.4 基本架构

企业微信截图_20201104093627.png

1.5 实现步骤

热备步骤如下图所示:

1609396574428019.png

2. 准备工作编辑

2.1 安装包清单

配置热备所需的环境安装包清单如下表所示:

文件内容说明是否必须
JDK 1.8安装包节点工程所在服务器 JDK 版本一致,且在 1.8 及以上
FineBI 安装包
确认两个工程版本和 JAR 包的时间一致,且都为 5.1.7 及以上版本
FTP 安装包

安装配置步骤请参见本文 3.2 节内容

注:配置集群时建议使用 文件服务器

Redis 安装包安装配置步骤请参见本文 3.3 节内容
Nginx 安装包安装配置步骤请参见本文 3.6、3.7 节内容
Nginx 健康检查包安装配置步骤请参见本文 3.6、3.7 节内容
热备插件
参考本文 3.9 节内容

2.2 基础环境准备

  • 参考 热备集群环境准备 准备好基础环境。

  • Redis 和 Nginx 在 Linux 系统上的部署均依赖 GCC 编译器,所以须注意,若选用 Linux 服务器,请保证系统具备 GCC 编译环境。查询命令:gcc -v,若没有 GCC 环境则需要自行安装,联网安装命令:yum install gcc gcc-c++

  • 确认工程已经部署在容器中( 例如:Tomcat 要求版本一致且在 8.5 及以上)。

  • 构成集群的两个环境所依赖的 JDK 版本要一致。

  • 两工程的服务器时间一致。

2.3 确认通信状态

确认主节点工程已经配置外接数据库,若两个工程都配置了外接数据库,则必须为同一个外接数据库。

确认两个工程彼此之间以及各自到外接数据库之间的通讯正常。

3. 集群及组件部署编辑

应用集群必须先将 BI 工程部署到外部容器,这里以 Tomcat 服务器为例。

3.1 单机 Tomcat 工程配置

参考 Tomcat服务器部署 在两个服务器中部署 FineBI 工程。

Tomcat 默认端口为 8080,若系统端口冲突可自行改为其他端口,如示例修改 Tomcat 访问端口为 8818,修改%Tomcat%/conf下的 server.xml 文件,如下图所示:

1604391061526420.png

启动工程之后,配置外接数据库

注:配置作为主节点的工程的外接数据库。

在浏览器中输入访问地址http://IP:端口/webroot/decision,成功打开 BI 工程登录页面,即部署成功。

3.2 安装配置 FTP

在主节点工程所在服务器安装 FTP 。

详情参见:Linux 系统安装配置 FTP

3.2.1 安装 FTP

执行命令检查是否安装 FTP:

rpm -qa |grep vsftpd

若未安装,则联网安装,执行命令:

yum install vsftpd -y

3.2.2 修改 FTP 相关配置

1)编辑 vsftpd.conf 配置文件,将 anonymous_enable 值改为 NO ,禁止匿名登录。

vi /etc/vsftpd/vsftpd.conf   # 编辑vsftpd.conf配置文件
anonymous_enable=NO   # 禁止匿名登录

1617846296519970.png

2)新增 FTP 用户

useradd ftpuser   # 新建名为 ftpuser 的用户,并自动建立/home/ftpuser 目录
passwd ftpuser   # 设置该用户的密码

然后连续两次输入要给该用户设置的密码即可,##使用 ftpuser 的账户密码可以登录并使用 ftp 服务##

3)启动 vsftpd

service vsftpd start  # 启动vsftpd服务

4)拷贝 WEB-INF,给文件夹赋权限

  • 拷贝正式环境 Web 工程里的 WEB-INF 文件夹,并粘贴到/home/ftpuser目录下,在平台开启文件服务器时,ftp 路径填写 /home/ftpuser/WEB-INF

3.png

  • 赋予权限

chmod -R 777 /home/ftpuser  #给 ftpuser 文件夹赋予写入权限

3.3 安装配置 Redis

在主节点工程所在服务器安装 Redis 。

详情参见:Linux 系统安装配置单机 Redis

3.3.1 下载源码包

Redis-5.0.4:redis-5.0.4.tar.gz

3.3.2 安装

mkdir /usr/redis  # 创建 Redis 目录
cd /usr/redis  # 进入目录
# 将 Redis 安装包传输到该目录下 #
tar -zxvf redis-5.0.4.tar.gz  # 解压安装包
cd /usr/redis/redis-5.0.4  # 进入解压目录
make 
make test
make install  # 安装命令
redis-server -v  # 检查安装结果

3.3.3 修改配置

进入编辑文件,如下所示:

vi /usr/redis/redis-5.0.4/redis.conf # 编辑 redis.conf 配置文件

修改如下内容:

bind 127.0.0.1 ---> # bind 127.0.0.1
protected-mode yes ---> protected-mode no
daemonize no ---> daemonize yes # 默认以后台程序方式运行,不需要加&强制后台运行了
port 6379 ---> port 7379  # 将端口改为 7379
pidfile /var/run/redis_6379.pid ---> pidfile /var/run/redis_7379.pid  # 将端口改为 7379
# requirepass foobared ---> requirepass 123456  # 123456为密码可任意替换
maxmemory 4294967296  # 配置内存为 4G 单位是 byte,也可以配置成其他大小,推荐大小为4G(需添加内容)
maxmemory-policy allkeys-lru # 过期策略,LRU 近期最少使用算法(需添加内容)

3.3.4 启动 redis

cd /usr/redis/redis-5.0.4/src #进入 src 目录
./redis-server /usr/redis/redis-5.0.4/redis.conf #启动 Redis 时需指定配置文件
redis-cli -p 端口 -a 密码 #本地启动Redis客户端,可以进行查看key值,删除key值,检查redis状态等操作

3.4 开启集群并拷贝部署子节点

启动之前部署好的主节点,配置集群。

以管理员身份进入数据决策系统,点击「管理系统>智能运维>集群配置」,如下图所示:

4.png

3.4.1 配置状态服务器

打开状态服务器按钮,选择 redis 单机,主机 IP 中填入使用的 redis 所在的服务器地址,端口填写为 3.3 节中修改的端口号 7379,输入密码,测试连接成功即可,如下图所示:

6.png

3.4.2 配置文件服务器

选择「文件服务器共享」进行文件服务器的配置,主机为 3.2 节安装 FTP 的主机 IP,用户名和密码为 3.2 节设置的用户名密码,目录为 3.2 节创建好的 /home/ftpuser/WEB-INF,点击「测试连接并保存」,如下图所示:

7.png

3.4.3 开启集群

点击「开启集群」按钮,如下图所示:

8.png

3.4.4 拷贝主节点工程到子节点

关闭主节点工程,拷贝主节点 webroot 至子节点工程 %Tomcat%/webapps,建议压缩打包后再传输、解压,节省时间。

启动主节点工程,即可看到两个节点,则部署完成,如下图所示:

11.png

3.5 安装 nginx

详情请参见:Linux 系统安装配置 Nginx

3.5.1 下载安装包

在服务器上安装 nginx,在 /usr下新建一个 nginx 目录,上传并解压 nginx 的安装包

安装包如下:ngx_healthcheck_module-master.zipnginx-1.15.6.tar.gz

3.5.2 安装步骤

1)执行如下命令:

cd /usr/nginx   #进入目录     
tar zxvf nginx-1.15.6.tar.gz # 解压 nginx-1.15.6    
unzip ngx_healthcheck_module-master.zip   # 解压 ngx_healthcheck_module-master

2)然后执行以下命令,安装所需的依赖包:

yum install -y pcre pcre-devel    
yum install -y zlib zlib-devel   
yum install -y openssl openssl-devel

3)开始安装,执行如下命令:

cd /usr/nginx/nginx-1.15.6  #进入解压目录
patch -p1 < /usr/nginx/ngx_healthcheck_module-master/nginx_healthcheck_for_nginx_1.14+.patch  # 应用健康检查补丁
./configure --prefix=/usr/nginx --with-stream --add-module=/usr/nginx/ngx_healthcheck_module-master #检查依赖
make && make install   #开始安装

4)启动 nginx

进入到/usr/nginx/sbin 下,使用./nginx启动 nginx ,更多命令介绍如下所示:

./nginx -s reload 重启 
./nginx  启动
./nginx -s stop 关闭

5)检查 nginx 安装情况,执行

ps -ef|grep nginx

3.6 修改 Nginx 配置

想使用 Nginx 搭配 Web 容器发挥负载均衡的作用,必须还要对 Nginx 进行配置。

建议直接下载本节所示的 nginx.conf 文件替换现有的 nginx.conf 文件,根据实际情况修改以下部分内容:

示例:nginx.conf

3.6.1 配置主、子节点的 IP

如下图所示:

20.png

    3.6.2 配置 Nginx 转发

    修改端口和 IP 如下图所示:

    21.png

    22.png

    3.6.3 重启 Nginx

    配置完成后重启 Nginx,执行以下命令

    cd /usr/nginx/sbin  #进入sbin目录  
    ./nginx -s reload #启动nginx

    3.7 对接单节点

    在「管理系统>智能运维>集群配置>节点管理」下记住主节点服务器的 hostname 和节点 ID,如下图所示:

    12.png

    3.7.1 JAR 包在 2021-02-05 之前

    集群 master 节点配置:外置数据库中找到 BI 的外置数据库配置表fine_conf_entity 表,新增 3 条 ID 记录,具体说明如下表所示:

    idvalue
    说明
    SystemOptimizationConfig.biClusterMasterNodeHostName主节点服务器的 hostnameid 用来规定 Web 集群中的主节点,value 对应主节点服务器的 hostname
    hotBackConf.master主节点的 hostname   热备 master 节点配置
    SystemOptimizationConfig.ClientMasterId主节点 ID

    修改定时任务指定节点

    如下图所示:

    1617948493282443.png

    3.7.2 JAR 包在 2021-02-05 及之后

    集群 master 节点配置:使用 fine_conf_entity可视化配置插件 新增 4 条 ID 记录,具体说明如下表所示:

    idvalue
    说明
    SystemOptimizationConfig.biClusterMasterNodeHostName主节点服务器的 hostname

    id 用来规定 Web 集群中的主节点,value 对应主节点服务器的 hostname 

    hotBackConf.master主节点的 hostname   

    热备 master 节点配置

    hotBackConf.slave备节点的 hostname

    备节点配置

    SystemOptimizationConfig.ClientMasterId主节点 ID

    修改定时任务指定节点

    如下图所示:

    1617868287194025.png

    3.8 安装热备插件

    部署完成之后安装热备插件,重启集群,先重启主节点,再重启子节点,二者间隔至少 30s。

    注:在某一个节点安装插件即可。

    3.8.1 JAR 包在 2021-02-05 之前

    如需获取热备插件,请联系技术支持。技术支持联系方式:QQ「800049425」、电话「400-811-8890」。

    3.8.2 JAR 包在2021-02-05 及之后

    热备插件会随主 JAR 的升级自动解压安装覆盖,正常情况下无需手动安装插件:

    • 若升级前未安装热备插件,JAR 包更新到 2021-02-05 及之后版本,启动工程后,将自动安装最新的热备插件。

    • 支持换 JAR 自动替换最新的插件,重启工程后会自动解压安装,可覆盖原插件。

    4. 效果检查编辑

    4.1 日志检查

    在「管理系统>智能运维>平台日志」中点击全局设置,将日志级别调整为 INFO ,点击「保存」,如下图所示:

    1609396824867930.png

    kill 掉主节点,检查子节点 fanruan.log 日志是否打印: register current node as active node : xxx ,其中 xxx 是子节点的hostname(此时子节点已经切换为新的active节点,主节点转为standby节点),如下图所示:

    30.png

    4.2 查看 Nginx 状态页

    在浏览器输入ip:负载均衡端口号/status查看健康页面,可以看到节点健康状态,会发现当前 active 节点的 BI.main 状态为 up ,而当前 standby 节点的 BImain 状态为标红,这是正常情况。如下图所示:

    注:除了 standby 节点的 BI.main 标红为正常,其他节点状态应该都不标红 。

    1617948709412064.png