反馈已提交

网络繁忙

热备部署步骤

  • 文档创建者:Roxy
  • 编辑次数:29次
  • 最近更新:Wendy123456 于 2021-07-27
  • 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:热备支持的集成模式为纯 Spider 引擎或者 Spider 引擎+直连引擎。

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

    1.4 基本架构

    企业微信截图_20201104093627.png

    1.5 实现步骤

    热备步骤如下图所示:

    1609396574428019.png

    2. 准备工作

    2.1 安装包清单

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

    文件内容说明是否必须
    JDK 1.8安装包节点工程所在服务器 JDK 版本一致,版本为:JDK 1.8 且小版本需在 JDK8u102 以上
    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. 效果检查

      节点有四个概念:master(定义的主节点)、slave(定义的备节点)、active(当前实际的主节点)、standby(当前实际的备节点)。

      一般来说,用户环境两个节点机器性能是差不多的,所以一般都是主节点默认成为 active(当前实际的主节点)。但有些情况下,若次节点性能较好,启动得比主节点早,会先抢到锁成为 active ,主节点由于启动得晚会成为 standby 。

      4.1 日志检查

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

      1609396824867930.png

      工程启动,查看 active 节点的启动日志,能看到[HotBack][Startup] register current node as active node : xxx,其中 xxx 为 active 节点的 hostname 。如下图所示:

      1627374614188000.png

      4.2 热备功能检查

      kill 掉主节点,等待 90s ,检查备节点日志是否打印: register current node as active node : xxx,其中 xxx 是备节点的 hostname(此时备节点已经成为新的 active 节点,主节点重启后会转为 standby 节点),如下图所示:

      1627374676797153.png

      5. 注意事项

      5.1 热备数据源简介

      为防止节点数据同步失败,当节点启动或发生节点切换时,新 active 节点会对节点本地数据进行检测,若检测到本地数据滞后,会对对应的数据表拉起热备数据源更新任务。

      附件列表


      主题: 部署集成
      • 有帮助
      • 没帮助
      • 只是浏览

      售前咨询电话

      400-811-8890转1

      在线技术支持

      在线QQ:800049425

      热线电话:400-811-8890转2

      总裁办24H投诉

      热线电话:173-1278-1526

      文 档反 馈

      鼠标选中内容,快速反馈问题

      鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

      不再提示

      10s后关闭