Direct S3 Cluster 部署
本文将介绍在公共云环境中快速部署启动一个单节点的 AutoMQ 实例,并测试 AutoMQ 的基本功能。
前置条件
准备 1 台主机用于部署 AutoMQ 集群。在公共云环境建议选择 2 核 16GB 内存的网络优化型 Linux amd64 主机,并确保系统盘存储空间不低于 10GB,数据卷磁盘空间不低于 10GB。测试环境可以适当降低配置
下载支持 Direct S3 版本的 AutoMQ 二进制安装包,用于安装 AutoMQ
创建一个自定义命名的对象存储桶,例如 automq-data
创建一个 IAM 用户并为其生成 Access Key 和 Secret Key。然后,确保该 IAM 用户具有对之前创建的对象存储桶完整的读写权限
安装并启动 AutoMQ 集群
- 修改 AutoMQ 配置
实例配置位于 config/kraft/server.properties,需要修改如下配置
- 精简版配置
- 完整配置
s3.data.buckets=0@s3://<your-bucket>?region=<your-region>&endpoint=<your-s3-endpoint>
s3.ops.buckets=0@s3://<your-bucket>?region=<your-region>&endpoint=<your-s3-endpoint>
s3.wal.path=0@s3://<your-bucket>?region=<your-region>&endpoint=<your-s3-endpoint>
使用 S3 兼容服务的 endpoint 和 region 以及创建好的 bucket 填充以上配置
s3.data.buckets=0@s3://$bucket?region=$region[&endpoint=$endpoint][&pathStyle=$enablePathStyle]
s3.ops.buckets=0@s3://$bucket?region=$region[&endpoint=$endpoint][&pathStyle=$enablePathStyle]
s3.wal.path=0@s3://$bucket?region=$region[&endpoint=$endpoint][&pathStyle=$enablePathStyle][&batchInterval=$batchInterval][&maxBytesInBatch=$maxBytesInBatch][&maxUnflushedBytes=$maxUnflushedBytes][&maxInflightUploadCount=$maxInflightUploadCount]
s3.data.buckets、s3.ops.buckets 与 s3.wal.path 共有的配置:
bucket:S3 兼容服务的对象存储桶
region:S3 兼容服务的区域
endpoint:S3 兼容服务的接入点
pathStyle:S3 兼容服务的路径访问方式。不同的 S3 兼容服务对此有不同的要求,例如 使用 MinIO 时需要将此项设置为 true
s3.wal.path 独有的配置
batchInterval:触发数据上传的间隔时间,单位毫秒
maxBytesInBatch:触发数据上传的缓存数据量,单位 Byte
maxUnflushedBytes:最大未上传数据量,单位 Byte。等待上传的数据量超过这个数值会导致拒绝后续写入
maxInflightUploadCount:最大并发上传数
readAheadObjectCount:recover 时预读的 object 数量
使用配置文件启动 AutoMQ
export KAFKA_S3_ACCESS_KEY=<your-ak>
export KAFKA_S3_SECRET_KEY=<your-sk>
bin/kafka-server-start.sh config/kraft/server.properties使用 S3 兼容服务的 access key 以及 secret key 填充环境变量
运行示例程序
在启动 AutoMQ 集群后,可以运行以下示例程序来验证其功能
停止并卸载 AutoMQ 集群
在完成测试后,可以参考以下步骤停止并卸载 AutoMQ 集群
- 执行如下命令停止进程
bin/kafka-server-stop.sh
你可以通过配置对象存储的生命周期规则来自动清空 s3-data-bucket 和 s3-ops-bucket 中的数据,然后再删除这些存储桶
删除创建的计算实例及其对应的系统卷和数据卷
删除测试用户及其关联的 AccessKey 和 SecretKey