MinIO[7] 是一款高性能、分布式的对象存储系统,能够在标准硬件上运行,提供极高的性价比和广泛的适用性。专为高性能私有云设计,MinIO 采用简洁高效的架构,确保在提供全面对象存储功能的同时保持卓越性能。无论是传统的辅助存储、灾难恢复和归档,还是机器学习、大数据、私有云和混合云等新兴领域,MinIO 都展现了其强大的适应性和优越性。得益于 MinIO 对 S3 API 的完全兼容,即使在私有数据中心,你仍然可以部署 AutoMQ 集群来获得一个与 Kafka 完全兼容,但是具备更好成本效益、极致弹性、个位数毫秒延迟的流系统。本文将指导你如何将 AutoMQ 集群部署在你私有数据中心的 MinIO 之上。
01
前置条件
一个可以正常使用的 MinIO 环境。如果你还没有可用的 MinIO 环境,可以参考其官网指引[1]进行安装。
准备 5 台主机用于部署 AutoMQ 集群。建议选择 2 核 16GB 内存的 Linux amd64 主机,并准备两个虚拟存储卷。
Tips:
请确保这些机器处于相同的网段可以互相通信
非生产环境也可以只部署 1 台 Controller,默认情况下该 Controller 也同时作为 Broker 角色
从 AutoMQ Github Releases[2] 下载最新的正式二进制安装包,用于安装 AutoMQ。
在 MinIO 上创建两个自定义命名的对象存储桶, automq-data 和 automq-ops。
a.可以通过设置环境变量来配置 AWS CLI 需要的 Access Key 和 Secret Key。
export AWS_ACCESS_KEY_ID=minioadmin
export AWS_SECRET_ACCESS_KEY=minio-secret-key-CHANGE-ME
b.使用 AWS CLI 创建 S3 存储桶。
aws s3api create-bucket --bucket automq-data --endpoint=http://10.1.0.240:900
02
安装并启动 AutoMQ 集群
第一步:生成 S3 URL
AutoMQ 提供了 automq-kafka-admin.sh 工具,用于快速启动 AutoMQ。只需提供包含所需 S3 接入点和身份认证信息的 S3 URL,即可一键启动 AutoMQ,无需手动生成集群 ID 或进行存储格式化等操作。
### 命令行使用示例
bin/automq-kafka-admin.sh generate-s3-url \
--s3-access-key=xxx \
--s3-secret-key=yyy \
--s3-region=cn-northwest-1 \
--s3-endpoint=s3.cn-northwest-1.amazonaws.com.cn \
--s3-data-bucket=automq-data \
--s3-ops-bucket=automq-ops
输出结果执行该命令后,将自动按以下阶段进行:
- 根据提供的 accessKey 和 secretKey 对 S3 基本功能进行探测,以验证 AutoMQ 和 S3 的兼容性。
- 根据身份信息,接入点信息生成 s3url。
- 根据 s3url 获取启动 AutoMQ 的命令示例。在命令中,将 --controller-list 和 --broker-list 替换为实际需要部署的 CONTROLLER 和 BROKER。执行结果示例如下:
############ Ping s3 ########################
[ OK ] Write s3 object
[ OK ] Read s3 object
[ OK ] Delete s3 object
[ OK ] Write s3 object
[ OK ] Upload s3 multipart object
[ OK ] Read s3 multipart object
[ OK ] Delete s3 object
############ String of s3url ################
Your s3url is:
s3://s3.cn-northwe