跳到主要内容

集成TongHttpServer

目录​

一、管理中心主从配置

一、管理中心主从配置​

当您需要管理中心能够长期稳定提供服务时,可以通过TongHttpServer搭建主从模式。

TongHttpServer是东方通的高性能服务代理中间件(已经被集成在TUS中,只为TUS提供服务;若用于TUS之外的系统,需要单独购买),支持OSI四层七层协议,可作为静态资源服务器、正向代理服务器、反向代理服务器、负载均衡服务器使用,支持带权轮询、IP哈希、最小连接、随机、哈希等多种负载均衡算法,满足企业构建高可用、高扩展性、高性能的应用服务集群需求。

从节点充当主节点的备份,以保证系统的高可用性和容错性。

当主节点故障时,从节点可以立即接管主节点的工作,以保证系统的正常运行。

多个管理中心的 redis 和数据库配置信息必须保持一致,数据库和redis配置参考《产品安装》。

配置管理中心​

配置节点名称​

ESB和GW关于分布式锁实现方式不一样,ESB需要设置节点名称而GW不需要。以下是ESB设置节点名称的操作步骤。

主从节点是随机的,不需要单独配置。通常先启动的节点即是主节点。

为保证管理中心各节点正常运行不产生异常冲突,请务必保证各节点名 server.name 不同。

  1. 进入管理中心配置文件目录 “Manage/ESBManage/config”。
  2. 修改该目录下文件 “application-release.yml” 中的 server.name 参数配置,确保每个节点名称唯一。
  3. 配置完成后,保存 “application-release.yml”。

开启资源锁配置​

管理中心包含很多定时任务,主从模式时,应该保证定时任务只能在一个节点上运行,避免出现数据冗余或资源竞争问题,需要打开配置

  1. 进入管理中心配置文件目录 “Manage/ESBManage/config”。
  2. 修改该目录下文件 “application-release.yml” 中的AUTHENTICATION.OPEN_SERVER_LOCK 参数配置,将值false改为true
  3. 配置完成后,保存 “application-release.yml”。

上述配置修改完成后重启管理中心

获取并安装TongHttpServer​

  1. 在产品安装目录TUS/ThirdPart 下获取TongHttpServer安装包。

  2. 执行如下命令,解压 TongHttpServer

    tar -zxvf TongHttpServer_6.0.1.4_x86_64.tar.gz
  3. 执行如下命令,进入解压目录

    cd THS/
  4. 启动 TongHttpServer 并验证安装

    cd bin/
    ./start.sh start

    访问http://IP:8080。 如http://10.10.22.211:8080/ 出现如下界面表示安装成功

    动态HTTP

配置TongHttpServer​

进入 THS/conf 目录,修改 httpserver.conf。

  1. 配置管理中心节点

    例如:配置两个管理中心节点。需要先参照安装手册安装两套管理中心

    在http模块中添加upstream模块,如下

     uptream esb {
    server 10.10.22.211:8199;
    server 10.10.22.215:8199;
    }

    上述两个端口为两套管理中心访问的IP和端口。 配置结果如下图所示:

    动态HTTP
  2. 配置页面访问和接口代理

    在server模块当中配置多个location

    添加后,如下所示。

      location /ops {
    proxy_pass http://esb;
    }

    location /management {
    proxy_pass http://esb;
    }

    location /dev {
    proxy_pass http://esb;
    }

    location /datamap {
    proxy_pass http://esb;
    }

    location /proxy {
    proxy_pass http://esb;
    }

    最终结果如图所示:

    动态HTTP
  3. 配置健康检查

    ESB提供的健康检查接口为 GET /api/v1/server/state/isActive。

    配置示例,如下所示。

       upstream is {
    server 10.10.22.211:8199;
    server 10.10.22.215:8199;
    health_check interval=3000 rise=2 fall=3 timeout=3000 type=tcp;
    check_http_send "GET /api/v1/server/state/isActive HTTP/1.0\r\n\r\n";
    check_http_expect_alive http_2xx http_3xx;
    }

    配置完成后,如下图所示。

    动态HTTP

    如上图,当接口返回状态码为 2xx 、3xx 时,则表示服务可用。

    由于管理中心采用主从模式,多节点场景下,只有一个节点对外提供服务。

    启动所有节点后,从节点会拒绝请求。健康检查接口 GET /api/v1/server/state/isActive 始终返回 400。nginx 获取状态后,会主动将请求转发到主节点。

验证​

  1. 分别访问两个管理中心登录界面,正常只有获取到资源的节点logo能正常展示,如下: 登录页面 从节点登录系统之后,由于没有获取到资源锁,接口也会报错,无法正常访问
  2. 通过THS访问,会直接代理到正常的主节点,不会又报错出现, 如下所示: THS代理
  3. 停掉主节点,模拟主节点故障,然后单独访问主节点界面,提示无法访问 停止主节点
  4. 主节点停掉,THS通过健康检测,会自动启用备节点,此时通过THS访问,仍能正常使用,如下: 启用备节点