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

目录:

1. 概述编辑

1.1 方案优势

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

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

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

1.2 基本架构

企业微信截图_20201104093627.png

1.3 实现原理

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

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

2. 准备工作编辑

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

2.1 确认版本

确认两个工程版本和 JAR 包的时间一致,且都为 5.1.7 及以上版本。

确认节点工程所在服务器 JDK 版本一致,且在 1.8 及以上。

2.2 确认通信状态

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

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

2.3 确认环境

确认已安装 GCC 环境

确认 ftp、Redis、Nginx 的安装情况

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

两工程的服务器时间一致

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 #启动nginx

    在浏览器输入ip:负载均衡端口号/status查看健康页面,可以看到节点健康状态,若为 up 状态则表示正常,如下图所示:

    1604404644328484.png

    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。

    4. 效果检查编辑

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

    1604406789596193.png

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

    1606963363886950.png