云计算百科
云计算领域专业知识百科平台

如何在服务器 CentOS 7.9 用 Apache Tomcat 10 部署 Spring Boot 微服务集群教学

如何在 CentOS 7.9 上使用 Apache Tomcat 10 部署一个 Spring Boot 微服务集群。Spring Boot 是开发现代微服务架构的流行框架,而 Apache Tomcat 是一个广泛使用的 Java Servlet 容器,用于承载和管理 Java Web 应用程序。A5数据将深入探讨从环境配置到应用部署的所有关键步骤。

一、环境准备

1.1 系统要求

  • 操作系统:CentOS 7.9
  • Java 版本:OpenJDK 11
  • Apache Tomcat 版本:10.0.0
  • Spring Boot 版本:2.x 及以上
  • 内存:至少 8GB
  • CPU:最低 4 核(推荐使用高性能的多核处理器)

1.2 香港服务器www.a5idc.com硬件配置

硬件配置推荐配置
CPU 4 核高频处理器(Intel Xeon Gold 5115 或更高)
内存 8GB DDR4 3200MHz
硬盘 256GB SSD NVMe
网络 100Mbps 或更高,低延迟 BGP 或 CN2 带宽
操作系统 CentOS 7.9

1.3 系统准备

在开始安装之前,首先确保你的服务器已更新到最新的软件包,并且安装了必要的工具。

sudo yum update -y
sudo yum install -y wget curl unzip git

二、安装 OpenJDK 11

Spring Boot 应用需要 Java 环境,因此首先安装 OpenJDK 11。

sudo yum install -y java-11-openjdk-devel

验证 Java 安装:

java -version

确保输出类似于:

openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment (build 11.0.10+9-18)
OpenJDK 64-Bit Server VM (build 11.0.10+9-18, mixed mode)

三、安装 Apache Tomcat 10

接下来,安装 Apache Tomcat 10,这是当前支持 Servlet 5.0 和 JSP 2.3 规范的版本,适用于运行 Spring Boot 微服务。

3.1 下载并安装 Tomcat 10

cd /opt
sudo wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.10/bin/apache-tomcat-10.0.10.tar.gz
sudo tar -xvzf apache-tomcat-10.0.10.tar.gz
sudo mv apache-tomcat-10.0.10 tomcat

3.2 配置环境变量

编辑 .bash_profile 文件,添加 Tomcat 的环境变量。

sudo vi ~/.bash_profile

在文件末尾添加以下内容:

export CATALINA_HOME=/opt/tomcat
export PATH=$PATH:$CATALINA_HOME/bin

保存并关闭文件,然后加载新的配置:

source ~/.bash_profile

3.3 启动 Tomcat

cd /opt/tomcat/bin
sudo ./startup.sh

验证 Tomcat 是否正常运行,访问 http://<your-server-ip>:8080,你应该能够看到 Tomcat 的欢迎页面。

四、配置 Spring Boot 微服务

Spring Boot 微服务通常是以独立的 JAR 文件运行的,而 Tomcat 则作为 Servlet 容器来托管和管理这些应用。在这里,我们将配置 Tomcat 以支持部署 Spring Boot 应用。

4.1 创建 Spring Boot 应用

你可以使用 Spring Initializr 来生成一个基本的 Spring Boot 项目,并添加需要的依赖。访问 Spring Initializr,选择以下配置:

  • Project: Maven Project
  • Language: Java
  • Spring Boot: 2.x 及以上版本
  • Dependencies: Web, Actuator, JPA, MySQL(根据你的需求选择)

生成项目后,解压并进入项目目录:

cd /path/to/your/springboot-project

4.2 配置 Spring Boot 打包为 WAR 文件

Spring Boot 默认生成 JAR 文件,但我们可以将它配置为生成 WAR 文件,供 Tomcat 部署。

编辑 pom.xml,添加以下配置:

<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>

确保你的 SpringBootApplication 类继承了 SpringBootServletInitializer,以便 Tomcat 能够正确初始化应用:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}

4.3 打包应用

使用 Maven 打包你的 Spring Boot 应用:

mvn clean package

这将在 target 目录下生成一个 WAR 文件,例如:your-app.war。

4.4 部署到 Tomcat

将生成的 WAR 文件复制到 Tomcat 的 webapps 目录中:

sudo cp target/your-app.war /opt/tomcat/webapps/

Tomcat 会自动解压和部署该应用,你可以通过访问 http://<your-server-ip>:8080/your-app 来访问你的 Spring Boot 微服务。

五、配置多实例微服务集群

在生产环境中,通常会有多个 Tomcat 实例来提供高可用性和负载均衡。在 Tomcat 中配置多个实例非常简单,只需要复制 Tomcat 的文件夹并更改端口即可。

5.1 配置多个实例

  • 复制 Tomcat 文件夹:
  • sudo cp -r /opt/tomcat /opt/tomcat-instance-2

  • 更改第二个实例的端口配置,编辑 /opt/tomcat-instance-2/conf/server.xml:
  • <Connector port="8081" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

  • 启动第二个实例:
  • cd /opt/tomcat-instance-2/bin
    sudo ./startup.sh

    5.2 配置负载均衡

    使用 Nginx 或 HAProxy 来进行负载均衡,确保请求在多个 Tomcat 实例之间均衡分配。

    Nginx 配置示例:

    http {
    upstream tomcat_backend {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
    }

    server {
    listen 80;

    location / {
    proxy_pass http://tomcat_backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }
    }

    六、监控与优化

    6.1 使用 Actuator 监控微服务

    Spring Boot Actuator 提供了很多内置的端点,用于监控和管理应用。确保在 pom.xml 中添加了 Actuator 依赖:

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    你可以通过访问 http://<your-server-ip>:8080/actuator/health 来查看应用的健康状态。

    6.2 性能优化

    • 内存配置:根据你的服务器硬件配置,可以通过设置 Tomcat 的 JAVA_OPTS 来优化内存使用:

      export JAVA_OPTS="-Xms1024m -Xmx2048m"

    • 数据库连接池:配置 Spring Boot 中的数据库连接池(例如 HikariCP)来提高数据库访问性能。

    七、总结

    A5数据本文详细介绍了如何在 CentOS 7.9 上使用 Apache Tomcat 10 部署 Spring Boot 微服务集群。通过上述步骤,你能够成功地在生产环境中配置高可用的微服务架构。为了确保最佳的性能和可用性,配置负载均衡和监控是必不可少的。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 如何在服务器 CentOS 7.9 用 Apache Tomcat 10 部署 Spring Boot 微服务集群教学
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!