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

目录:

1. 概述编辑

1.1 方案优势

相较于 Web集群&BI的Spider引擎单节点部署方案 有以下优势:

  • 节点宕机不影响工程使用,降低宕机风险,实现高可用。

  • 数据同步,主节点更新的数据文件会同步至子节点。

1.2 基本架构

企业微信截图_20201104093627.png

1.3 实现原理

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

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

1.4 实现步骤

热备步骤如下图所示:

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 及以上)。

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

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 

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

rpm -qa |grep vsftpd

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

yum install vsftpd -y

新增 FTP 用户

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

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

启动 vsftpd

service vsftpd start  # 启动vsftpd服务

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

在/home下新建目录 ftpuser 作为 Tomcat 的文件服务器,将 %Tomcat%/webroot 工程下的 WEB-INF 拷贝到 /home/ftpuser 下,如下图所示:

1604391497321948.png

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

3.3 安装 Redis

在安装 FTP 的服务器上安装 Redis .

3.3.1 检查 GCC 编译环境

执行如下命令:

gcc -v #检查是否有 gcc 编译器

3.3.2 下载源码包

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 volatile-lru # 过期策略,LRU 近期最少使用算法(需添加内容)

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

3.4 配置开启集群

注:配置之前确认 Redis 开启。

3.4.1 配置状态服务器

管理员登录部署好的 BI 工程,选择「管理系统>智能运维>集群配置」,打开状态服务器按钮,选择 redis 单机,主机IP 中填入使用的 redis 所在的服务器地址,端口填写为 3.3.3 节中修改的端口号 7379,密码无,测试连接成功即可,如下图所示:

1604398702834498.png

3.4.2 配置文件服务器

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

1604402184308302.png

3.4.3 开启集群

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

1604402587187674.png

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

将做了前面操作的工程 %Tomcat%/webapps/webroot 工程拷贝至另一个子节点工程 %Tomcat%/webapps下,替换 webroot 。启动主节点工程,即可看到两个节点,则部署完成,如下图所示:

1604403041891089.png

3.6 安装 Nginx

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

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

执行如下命令:

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

确认已有 gcc 环境,若该节点没有,则重新安装,执行:

gcc -v

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

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

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

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   #开始安装

检查 nginx 安装情况,执行

ps -ef|grep nginx

nginx命令补充:

进入到/usr/nginx/sbin 下:

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

3.7 修改 Nginx 配置

示例:nginx.conf

3.7.1 配置主、子节点的 IP

如下图所示:

1604404026944088.png

    3.7.2 配置 Nginx 转发

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

    1604404414142143.png

    1606961255965284.png

    3.7.3 重启 Nginx

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

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

    3.8 对接单节点

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

    1604404772959405.png

    集群 master 节点配置:关闭「管理系统>智能运维>集群配置>节点管理」下的 「开启集群」按钮,在外置数据库中找到 BI 的外置数据库配置表fine_conf_entity 表,新增 4 条 ID 记录,具体说明如下表所示:

    idvalue
    说明
    SystemOptimizationConfig.biClusterMasterNodeHostName主节点服务器的 hostnameid 用来规定 Web 集群中的主节点,value 对应主节点服务器的 hostname
    WebSocketConfig.requestPortswebsocket 端口号为了防止 websocket 端口冲突,需要修改 BI 的外置数据库配置表 fine_conf_entity 表中对应的 websocket 端口号,与 3.7.2 节 Nginx 配置文件中的保持一致
    hotBackConf.master主节点的 hostname   热备 master 节点配置
    SystemOptimizationConfig.ClientMasterId主节点 ID

    修改定时任务指定节点

    如下图所示:

    1606978539156811.png

    以上四个参数修改和确认完成后,开启「管理系统>智能运维>集群配置>节点管理」下的 「开启集群」按钮。

    3.9 安装热备插件

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

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

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

    4. 效果检查编辑

    4.1 日志检查

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

    1609396824867930.png

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

    1606963363886950.png

    4.2 查看 Nginx 状态页

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

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

    10.png