在本文中,我将向您展示如何在 AWS Elastic Container Service (ECS) 上使用 Fargate 启动类型部署 XXL-Job-Admin。XXL-Job 是一款分布式任务调度平台,由 Java 编写,提供 Web 界面进行任务管理。我们将使用 AWS 应用程序负载均衡器 (ALB) 公开 XXL-Job-Admin 服务。
前提条件
在开始之前,请确保您已经具备以下条件:
- 一个 AWS 账户
- 已安装并配置好 AWS CLI
- 已安装 Docker
初始数据
步骤
1. 创建 VPC 和子网
如果您还没有 VPC 和子网,请先创建它们。Fargate 需要使用专用子网。您可以按照 AWS 文档 创建 VPC 和子网。
记录下您的 VPC ID 和子网 ID,稍后会用到。
2. 创建 ECS 集群
使用 AWS CLI 创建一个 ECS 集群:
3. 创建任务定义
创建一个 task-definition.json
文件,内容如下:
注意替换以下值:
YOUR_DB_USERNAME
: 您的数据库用户名YOUR_DB_PASSWORD
: 您的数据库密码YOUR_XXL_PASSWORD
: xxl-job-admin 的登录密码YOUR_DB_URL
: 您的数据库连接 URLYOUR_AWS_REGION
: 您的 AWS 区域
例如如下参数:
参数说明:
-XX:MaxRAMPercentage=100.0
- 这是一个 Java 虚拟机参数,用于设置 Java 进程可以使用的最大内存百分比。在这里,它被设置为 100%,表示可以使用所有可用的内存资源。
-XX:InitialRAMPercentage=5
- 这也是一个 Java 虚拟机参数,用于设置 Java 进程初始化时分配的内存百分比。在这里,它被设置为 5%,表示初始化时只分配 5% 的内存资源。
--spring.datasource.username=root
- 这是一个 Spring 应用程序的配置参数,用于设置连接数据库时使用的用户名。在这里,用户名被设置为 "root"。
--spring.datasource.password=123456
- 这是一个 Spring 应用程序的配置参数,用于设置连接数据库时使用的密码。在这里,密码被设置为 "123456"。
--xxl.job.login.password=1342023
- 这是一个 XXL-Job-Admin 应用程序的配置参数,用于设置 Web 界面的登录密码。在这里,登录密码被设置为 "1342023"。
--spring.datasource.url=jdbc:mysql://test-cluster.cluster-cviu5goyqplm.us-east-1.rds.amazonaws.com:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
- 这是一个 Spring 应用程序的配置参数,用于设置连接数据库时使用的 JDBC URL。在这里,URL 指向一个 Amazon RDS 数据库实例,数据库名称为 "xxl_job"。URL 中还包含了一些其他的连接选项,如字符编码、是否允许多查询和是否使用 SSL 等。
注册任务定义:
4. 创建 ALB
创建一个 Application Load Balancer (ALB):
将 $SUBNET_IDS
替换为您的公共子网 ID,用逗号分隔。
5. 创建目标组
创建一个目标组,用于将流量路由到您的 Fargate 服务:
将 $VPC_ID
替换为您的 VPC ID。
6. 创建 ALB 监听器
创建一个 ALB 监听器,用于监听传入的流量:
将 $LOAD_BALANCER_ARN
替换为上一步创建的 ALB 的 ARN,将 $TARGET_GROUP_ARN
替换为上一步创建的目标组的 ARN。
7. 创建 Fargate 服务
创建一个 Fargate 服务,并将其与 ALB 和目标组关联:
将以下值替换为您自己的值:
my-fargate-cluster
: 您的 ECS 集群名称my-service
: 您的服务名称xxl-job-admin
: 您的任务定义家族名称$SUBNET_IDS
: 您的子网 ID,用逗号分隔$SECURITY_GROUP_IDS
: 您的安全组 ID,用逗号分隔$TARGET_GROUP_ARN
: 您之前创建的目标组的 ARN
现在,您的 xxl-job-admin 应用就已经在 Fargate 上运行了,并通过 ALB 公开服务。您可以使用 ALB 的 DNS 名称来访问您的应用程序。
后续操作
- 配置 xxl-job-admin 的数据库连接
- 配置 xxl-job 执行器,并将其部署到 ECS 或其他环境中
- 设置 AWS CloudWatch 监控和警报
- 配置自动扩展策略以根据需求自动扩展或缩减服务
通过本文,您已经学习了如何在 AWS ECS Fargate 上部署 XXL-Job-Admin。