TongWeb

官方地址:https://tongtech.com/dft/pctype/25.html

TongWeb 是什么?

TongWeb是一款全面符合Java EE、Jakarta EE最新标准规范、轻量易于使用、性能强大、具有高可靠性和高安全性的应用服务器产品,可适应各类企业应用的基础环境及多种主流应用框架,支撑从开发到生产的全应用生命周期,包括便捷的开发、随需应变的灵活部署、丰富的运行时监视、高效的管理等。

TongWeb还提供容器云、微服务、监控运维等更多新技术功能,在云计算、安全、智能运维等领域持续发力,提供优质的行业解决方案。TongWeb 应用服务器已广泛地应用于电信、金融、政府、交通、能源等各种领域的企业应用中。

  • TongWeb技术功能成熟,可以支撑国内规模化的应用
    TongWeb研发起步早,在分布式事务处理、高性能异步消息传输等核心技术研发上具备较好的技术积累,在主要功能指标和系统稳定性方面,成熟度较高。经过20多年的研发与应用,无数评测与应用验证成果,是TongWeb成熟度的见证。SPECjEnterprise基准测试的优异结果是TongWeb实力的有效证明。

  • TongWeb紧跟国际核心技术标准
    标准规范方面,TongWeb是国内既完整符合又通过JavaEE5/6/7/8Jakarta EE9.1技术标准认证的产品。TongWeb 完全满足国内主流应用的技术需求,在标准支持上实现广泛兼容,支撑规模化应用。此外,TongWeb支持流行的开发框架如 Struts2SpringHibernateSpringboot等,而且对于使用大型框架(例如:lifery)的应用,在TongWeb上运行良好,不需要修改应用代码。

  • 国外应用服务器上的应用可以轻松移植到TongWeb上
    TongWeb具备国外品牌产品的基本能力,包括但不限于:开发工具支持、集群能力、session高可用、监控、集中管理能力等,涵盖了应用的开发、部署、运维的各个方面,为应用平稳商业化运行提供全面支持。TongWeb提供了成熟的应用移植方法步骤说明和应用迁移工具,可快速实现应用移植。

  • TongWeb具备强大的管理特性,满足用户需求
    TongWeb具备统一管控、安全管理、应用性能管理等诸多管理特性,可以满足用户应用管理需求。在云平台环境下,TongWeb集群节点支持智能化自动管理,能够自动、及时、适当的根据应用负荷的变化而动态调整,调整过程不影响业务的连续运行,从而提高资源利用率、节约运营成本。

产品特点

  • 安全性
    实现基于容器的安全策略,提供动态可扩展的安全体系结构,支持国密算法(SM2/SM3/SM4等)。

  • 兼容性
    支持主流和安全创新类数据库和操作系统,提供中文编码问题容错,兼容多种开源框架。

  • 成熟稳定
    长期服务于国内金融、电信、政府大型核心业务系统,验证产品的成熟性和稳定性。

  • 标准规范性
    完整符合并通过JavaEE5/6/7/8技术标准认证的产品,在标准支持上完全可以替代国外产品。

  • 应用性能代码级定位
    TongWeb提供代码级的应用性能诊断和分析工具,可以快速定位引起性能问题的代码片段。

  • 高性能支撑
    安全创新环境集群稳定支持25万在线用户并发访问,95%平均响应时间仅为478毫秒。

产品架构

应用服务器TongWeb采用微内核架构,在JVM之上,由JMX服务、类加载服务、配置服务和生命周期服务构成应用服务器的最小内核;在此微内核基础上,围绕着Web、EJB两大核心容器,构建JavaEE基础服务层和扩展服务层。

TongWeb提供了覆盖所有核心容器和服务的管理服务,用户可以通过管理服务对应用服务器内所有服务、资源和应用进行管理。

TongWeb 安装和使用

发布组件(推荐)

在 deployAll-7.0.E.6_P5.bat 文件的 set “CURRENT_DIR=%cd%” 前一行增加 JAVA_HOME 设置;

# 请设置为你本地JDK安装目录
set "JAVA_HOME=C:\Program Files\Java\jdk-1.8"

执行Bat脚步,把Jar推送到Maven私有厂库,请使用你的Maven仓库地址和厂库ID

deployAll-7.0.E.6_P5.bat "http://127.0.0.1:8081/nexus/content/repositories/central/" "central"

TongWeb 与 Spring Boot 集成

1、添加 TongWeb 的 Maven 依赖

配置tongweb版本号:
<properties>
    <tongweb.version>7.0.E.6_P5</tongweb.version>
    <tongweb-license-client.version>4.4.1.3</tongweb-license-client.version>
    <tongweb-gmssl.version>1.0.0</tongweb-gmssl.version>
</properties>
Spring Boot 1.x、Spring Boot 2.x 的项目,需要添加 JavaEE标准容器 的Maven依赖管理:
<dependencyManagement>
    <dependencies>
        <!-- For Tongweb -->
        <!-- 提供web应用的核心功能依赖聚合模块 -->
        <dependency>
            <groupId>com.tongweb</groupId>
            <artifactId>tongweb-embed-core</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 提供dubbo的核心功能依赖聚合模块 -->
        <dependency>
            <groupId>com.tongweb</groupId>
            <artifactId>tongweb-embed-dubbo</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 提供与springboot框架集成的jdbc规范支持。适配springboot的1.x版本。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-data-jdbc-starter-1.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 提供与springboot框架集成的jdbc规范支持。适配springboot的2.x版本。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-data-jdbc-starter-2.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 与springboot集成,托管TongWeb生命周期功能支持。适配springboot的1.x版本。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-starter-1.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 与springboot集成,托管TongWeb生命周期功能支持。适配springboot的2.x版本。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-starter-2.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 与 springboot 集成,提供对 tongweb 的监控。适配 springboot 的 1.x 版本。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-monitor-starter-1.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 与 springboot 集成,提供对 tongweb 的监控。适配 springboot 的 2.x 版本。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-monitor-starter-2.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 提供springboot框架集成的websocket规范的支持。适配springboot的1.x版本。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-websocket-1.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 提供springboot框架集成的websocket规范的支持。适配springboot的2.x版本。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-websocket-2.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
Spring Boot 3.x 的项目,需要添加 JakartaEE标准容器 的Maven依赖管理:
<dependencyManagement>
    <dependencies>
        <!-- For Tongweb -->
        <!-- 提供 web 应用的核心功能依赖聚合模块。 -->
        <dependency>
            <groupId>com.tongweb</groupId>
            <artifactId>tongweb-embed-core-3.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 提供 web 应用 javax el 标准核心组件模块。 -->
        <dependency>
            <groupId>com.tongweb</groupId>
            <artifactId>tongweb-embed-el-3.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 提供对 JakartaEE 规范中 JSP 规范的实现支持。 -->
        <dependency>
            <groupId>com.tongweb</groupId>
            <artifactId>tongweb-embed-jsp-3.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 提供 web 应用 websocket 核心组件模块。 -->
        <dependency>
            <groupId>com.tongweb</groupId>
            <artifactId>tongweb-embed-websocket-3.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 与 SpringBoot 集成,托管TongWeb生命周期功能支持。适配 SpringBoot 的 3.x 版本。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-starter-3.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 提供 SpringBoot 框架集成的 WebSocket 规范的支持。适配 SpringBoot 的 3.x 版本。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-websocket-3.x</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
响应式编程容器 的Maven依赖管理:
<dependencyManagement>
    <dependencies>
        <!-- 响应式编程容器核心,可结合tongweb-spring-boot-reactor-starter用于运行 spring cloud gateway 网关。 -->
        <dependency>
            <groupId>com.tongweb</groupId>
            <artifactId>reactor-tongweb-core</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 响应式编程容器支持http,可结合tongweb-spring-boot-reactor-starter用于运行spring cloud gateway网关。 -->
        <dependency>
            <groupId>com.tongweb</groupId>
            <artifactId>reactor-tongweb-http</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
        <!-- 用于运行spring cloud gateway网关。 -->
        <dependency>
            <groupId>com.tongweb.springboot</groupId>
            <artifactId>tongweb-spring-boot-reactor-starter</artifactId>
            <version>${tongweb.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
其他的Maven依赖管理:
<dependencyManagement>
    <dependencies>
       <!-- license-server 的客户端 -->
       <dependency>
             <groupId>com.tongweb</groupId>
             <artifactId>tongweb-lic-sdk</artifactId>
             <version>${tongweb-license-client.version}</version>
        </dependency>
        <!-- 提供国密 SSL 核心功能模块。 -->
        <dependency>
            <groupId>com.tongweb</groupId>
            <artifactId>tongweb-gmssl</artifactId>
            <version>${tongweb-gmssl.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

修改 pom.xml 引入依赖

移除springboot自带的tomcat, 添加tongweb相关依赖,tongweb-spring-boot-startertongweb-embed为tongweb核心依赖,必须添加,其他根据需求选择添加。

Spring Boot 1.x 的项目,
<!-- For Tongweb -->
<dependency>
    <groupId>com.tongweb.springboot</groupId>
    <artifactId>tongweb-spring-boot-starter-1.x</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-embed-core</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb.springboot</groupId>
    <artifactId>tongweb-spring-boot-websocket-1.x</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-lic-sdk</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-gmssl</artifactId>
</dependency>
Spring Boot 2.x 的项目
<!-- For Tongweb -->
<dependency>
    <groupId>com.tongweb.springboot</groupId>
    <artifactId>tongweb-spring-boot-starter-2.x</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-embed-core</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb.springboot</groupId>
    <artifactId>tongweb-spring-boot-websocket-2.x</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-lic-sdk</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-gmssl</artifactId>
</dependency>
Spring Cloud Gateway 的项目
<!-- For Tongweb Reactor -->
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>reactor-tongweb-core</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
   <artifactId>reactor-tongweb-http</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-spring-boot-reactor-starter</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-lic-sdk</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-gmssl</artifactId>
</dependency>
Spring Boot 3.x 的项目
<!-- For Tongweb -->
<dependency>
    <groupId>com.tongweb.springboot</groupId>
    <artifactId>tongweb-spring-boot-starter-3.x</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-embed-core-3.x</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb.springboot</groupId>
    <artifactId>tongweb-spring-boot-websocket-3.x</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-embed-websocket-3.x</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-lic-sdk</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-gmssl</artifactId>
</dependency>

我的项目依赖如下:

<!-- For Embed Tomcat -->
<!-- <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
</dependency> -->
<!-- For Embed Jetty -->
<!-- <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency> -->
<!-- For Embed Undertow
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<dependency>
    <groupId>com.github.hiwepy</groupId>
    <artifactId>undertow-metrics-prometheus</artifactId>
</dependency>-->
<!-- For Embed Tongweb -->
<!-- 提供web应用的核心功能依赖聚合模块 -->
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-embed-core</artifactId>
</dependency>
<!-- 与springboot集成,托管TongWeb生命周期功能支持。适配springboot的2.x版本。 -->
<dependency>
    <groupId>com.tongweb.springboot</groupId>
    <artifactId>tongweb-spring-boot-starter-2.x</artifactId>
</dependency>
<dependency>
    <groupId>com.tongweb.springboot</groupId>
    <artifactId>tongweb-spring-boot-websocket-2.x</artifactId>
</dependency>
<!-- license-server 的客户端 -->
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-lic-sdk</artifactId>
</dependency>
<!-- 提供国密 SSL 核心功能模块。 -->
<dependency>
    <groupId>com.tongweb</groupId>
    <artifactId>tongweb-gmssl</artifactId>
</dependency>

2、编写yml文件,license必须添加

server:
  port: 8080
  # TongWeb 服务器配置
  tongweb:
    # 设定URI的解码字符集
    uri-encoding: UTF-8
    # 最小工作线程,连接池中应用保护的最小空余线路数
    min-spare-threads: 250
    # 设置tongweb的最大工作线程数
    max-threads: 2000
    # 最大等待队列大小
    accept-count: 1000
    # 设置最大连接数
    max-connections: 3500
    #连接超时时间 (毫秒) 使用值 -1 表示没有(即无限)超时。 Spring Boot 1.x与Spring Boot 2.x 中涉及时间单位配置入参单位均不同,
    # Spring Boot 2.x 支持ms、s、m、h、d等时间单位,默认ms,Spring Boot仅支持Int或Long型数值 默认值:20000
    connection-timeout: 500000ms
    # 请求体能吞下的最大数量
    max-swallow-size: -1
    # 最大post请求大小,单位为KB、MB。 如果不加单位默认采用Byte作为单位,
    # 例: server.tongweb.max-http-post-size=1,表示1字节。 不配置该参数表示不限
    max-http-post-size: 2MB
    #东方通 License 相关
    #license:
    #  type: file
    #  path: classpath:tongweb/license.dat

使用 TongWeb 嵌入式版时,首先需要经过 license 认证。TongWeb 嵌入式版采取读取 license.dat 文件认证的方式。

  • 通过配置项 server.tongweb.license.type 指定 license 认证的方式。
  • 当配置项 server.tongweb.license.type = file 时,表示 license 认证方式为文件认证。
  • 如果 server.tongweb.license.type = file,需要在配置项 server.tongweb.license.path 指 定 License 文件的存放目录。

3、启动,出现如下图所示表示配置成功

参考连接

作者:Jeebiz  创建时间:2023-10-12 17:35
最后编辑:Jeebiz  更新时间:2024-10-05 00:01