TongHttpServer 简介

时间:2024-10-01 14:19:39

1. 概述

        随着网络技术的飞速发展,高并发大用户场景越来越普遍,单一应用服务节点已经不能满足并发需求,为了提高整个系统可靠性,扩展性,吞吐率,通常将多个应用服务器通过硬负载/软负载组成集群,负载均衡器根据不同负载算法将请求分发到各个应用服务器节点。
        TongHttpServer (简称THS)是一款轻量级(占用系统资源轻少)负载均衡软件,支持TCP、UDP、HTTP、WEBSOCKET、HTTPS、国密HTTPS等多种协议接入,采用多进程异步编程,具有占用系统资源少、性能高、支持并发数高、配置简单等优点,常用于配置WEB静态资源服务器、反向代理负载均衡服务器。THS提供界面化的配置方式,提供完善的监控接口、监控界面,可以对整个系统并发数、请求错误数、请求分发情况、服务器资源消耗等进行实时统计,方便运维管理。THS提供高可用功能,可同时配置主备集群,通过IP漂移技术防止THS自身单点故障。

下图展示了THS通用应用架构模型:

2. THS的体系结构

THS体系结构分为三个部分:

1) 高可用HA
2) HttpServer主进程
3) 用户接口

  • 高可用HA

        用于防止THS自身单点故障,在多环境、多节点下实现THS的高可靠特性,支持秒级故障切换。

  • HttpServer主进程

        用于实现THS负载均衡主要功能。

  • 用户接口

        THS提供了配置文件、命令行工具、web控制台、Rest API等多种UI接口形式,便于用户使用管理。 

 3. THS 应用场景

        3.1 负载平衡

        服务器负载均衡技术目前被非常广泛的应用在企业级业务系统中,通过采用负载均衡软件可以获得到如下一些好处: 

  • 保障系统稳定可靠
  • 提高系统吞吐率
  • 易于扩展
  • 保证内网安全

        上图展示的是THS为服务器集群提供负载均衡服务的应用场景。THS不仅支持HTTP、HTTPS 七层负载均衡,同时也支持TCP、UDP四层负载均衡如mqtt、数据库及自定义协议的TCP/UDP服务器。THS作为服务器负载均衡设备时具有以下优点: 

  • 支持双机热备
    THS支持双机热备,可以有效保障系统的可靠性。主、备THS节点之间的检测和故障切换是自动进行的,无需人工操作,可以在秒级内完成。
  • 性能高
    THS主进程使用c语言编写、采用异步非阻塞编程,可以无阻塞的处理海量并发连接,支持和对应CPU绑定,避免进程切换导致cache失效,使用accept4函数减少一次系统调用、使用writev系统调用集中发送数据、使用sendfile零拷贝发送文件,提高软件性能。
  • 消耗资源小
    THS通过减少系统调用来降低对CPU的消耗,如使用accept4、writev集中发送数据、使用内存池技术对小内存统一分配。通过sendfile避免从内核空间拷贝数据到用用户空间,按阶段分配系统资源,有效的减少运行时内存的使用。另外,使用内存池也减少内存碎片的产生。
  • 安全稳定
    THS采用Master-worker设计,Master监控worker,在worker异常时可立即开启新的worker进程并给出监控信息。Master和worker运行在不同用户下,worker权限低,可限制为只能访问WEB目录。

 3.2 反向代理

        反向代理技术用来隐藏应用服务器的存在,保证内网安全,也是实现负载均衡的基础,通过反向代理技术,THS可作为内部系统的统一入口,如下图所示。

3.3 动静分离

        THS除了作为负载均衡软件使用外,也可以作为静态资源WEB服务器,通常将动态请求转发给应用服务器,静态资源文件由THS处理(如当今流行的vue),减少每次静态资源请求都转发给后端的网络开销,同时,THS使用sendfile零拷贝方式传输文件,在处理静态文件方面性能优越。通过此种配置可以有效的提高系统的吞吐率。THS国密SSL支持在同一端口。 

3.4 HTTPS 自适应

        THS国密SSL支持在同一端口,自适应标准HTTPS/国密HTTPS,完美解决从标准HTTPS到国密HTTPS的平滑过度,在系统需同时满足标准HTTPS/国密HTTPS的场景特别适用。 

 4. THS 的主要功能

   4.1 负载均衡
     4.1.1 支持的通信协议

        THS支持OSI七层协议HTTP、HTTPS,国密、FastCgi(PHP)、WebSocket、uWSGI(python)等协议,支持OSI四层协议TCP、UDP等。

    4.1.2 支持的负载均衡策略
THS支持多种负载均衡策略,包括:

  • 轮询调度
  • 最少连接调度
  • 随机调度
  • IP哈希
  • 哈希/一致性哈希可指定参数如URI、HOST等

        4.1.3 支持会话保持
THS支持以下会话保持方式:

  • 基于Cookie的会话保持
  • 基于源IP地址的会话保持

4.2  双机热备
        THS提供高可用HA功能和集群功能,以避免THS自身出现单点失效故障而影响整个系统的运行。
        THS集群可包含多个THS节点,但要求所有THS节点在同一网段。

        4.2.1 支持虚拟IP
        THS支持对外的虚拟IP(又称浮动IP),客户端可通过访问虚拟IP连接到THS。THS的虚拟IP可以在主、备机之间自动漂移。


        4.2.2 支持主备自动切换
THS支持主、备机之间的自动切换,可在秒级内完成。

5 THS特点
 5.1 稳定可靠
        在单个节点内部,THS采用Master-Wokrer设计模式,Master进程监控Worker进程,确保worker稳定运行;在节点之间,THS通过HA功能来防止本身单点故障;THS对后端节点进行主动健康检查,异常的节点将不参与负载均衡计算,同时也支持备份节点配置,当所有工作节点都异常时,可由配置的备份节点提供服务,从而保障业务系统的稳定性。

5.2 操作简单
        THS的部署非常简单,解压即可使用,同时THS为用户提供极为便捷的B/S配置方式,通过浏览器可对THS进行配置和日常维护。


5.3 性价比高
        THS为软件负载均衡软,相对于硬负载价格便宜,THS消耗系统资源少,在廉价的服务器上就能表现出优越的性能。对业务系统较多的场景,可以使用多套THS对不同应用系统进行集群,方便维护。

5.4 高性能
        THS通过内存池、多进程异步模式、减少系统调用、epoll技术、零拷贝技术等提高性能,能同时支持上万连接,采用sendfile发送静态文件,在静态文件处理上效率高,也常用来作为文件服务器使用。