携手AWS,零成本在EKS上体验AutoMQ企业版

01 前言

AutoMQ是一款贯彻云优先理念来设计的 Kafka 替代产品。AutoMQ 创新地对 Apache Kafka 的存储层进行了基于云的重新设计,在 100% 兼容 Kafka 的基础上通过将持久性分离至 EBS 和 S3 带来了 10x 的成本降低以及 100x 的弹性能力提升,并且相比 Apache Kafka 拥有更佳的性能。

为了让广大开发者以及对 AutoMQ 感兴趣的朋友可以更好的体验 AutoMQ 企业版内核的能力,AutoMQAWS 合作为大家提供了一个免费试用 AutoMQ 的机会。无需用户提供任何云资源,支付任何费用,真正意义的完全免费。本文将给大家介绍,如何在几分钟内全自动地在EKS上部署起一套 AutoMQ 集群。

02 获取零成本试用专用链接

AutoMQ 官网填写试用表单(见下方二维码),并且在业务场景和规模一栏额外标注【零成本试用】,我们在工作日时间一般会在30分钟以内与你取得联系,并且发送给你专用的免费试用访问链接以及 AutoMQ 企业版试用的 Helm Chart,然后即可按照如下方式操作登入免费试用的平台,获得免费3天的试用资格。

03 准备 AutoMQ 使用的的云资源

3.1 前置条件

  • Terraform v1.3+

  • AWS CLI v2.7.0/v1.24.0+, 参考installed[1] 和 configured[2]

  • kubectl v1.24.0+ [3]

  • AutoMQ 企业版 Helm Chart

3.2 部署说明

  • 会部署一个3个Controller(混合节点)、1个 Broker 节点的 AutoMQ 集群。每台 Broker 的配置为 2c16g。

  • 集群默认开启 SASL_PLAIN 身份认证

  • 集群默认使用的WAL引擎是S3WAL 。关于 AutoMQ 不同 WAL Storage 实现可以参考官方文档 [4]。

3.3 获取和配置 AWS 身份凭证信息

从 Workshop 登入后的控制台获取身份凭证:

根据不同的环境拷贝对应的执行命令,导出环境变量。本教程以 macOS 系统为例。

在本地导出环境变量后可以通过以下命令确认身份凭证是否生效:

 aws sts get-caller-identity

3.3 下载 Terraform 配置文件并执行

我们已经为你准备好了默认直接可以使用的Terraform配置文件。克隆 automq-eks-example 项目,并且在其中执行命令即可开始部署:

git clone https://github.com/AutoMQ/automq-eks-example
cd automq-eks-example
terraform init
terraform apply

Terraform apply 执行完毕后即可自动完成 EKS 集群、VPC网络、对象存储桶等资源的创建。

3.4 生成 kubeconfig

确保已经正确配置了 AWS 的身份凭证信息。在 Terraform 的执行目录,执行以下命令来同步 kubeconfig。同步完成后你可以使用 kubectl 命令来访问EKS集群。

aws eks --region $(terraform output -raw region) update-kubeconfig \
    --name $(terraform output -raw cluster_name)

04 安装 AutoMQ Helm Chart

使用 automq-eks-example 项目的 aws.yaml [5] 文件 作为 Helm Chart 的 Value Yaml。我们将使用该yaml文件的配置来安装 AutoMQ Helm Chart。

 helm install automq automq-enterprise-1.2.0-chart-rc0.tgz -f aws.yaml

安装 Chart 完毕后会打印接入点的信息:

Each Kafka broker can be accessed by producers via port 9092 on the following DNS name(s) from within your cluster:

    automq-automq-enterprise-controller-0.automq-automq-enterprise-controller-headless.default.svc.cluster.local:9092
    automq-automq-enterprise-controller-1.automq-automq-enterprise-controller-headless.default.svc.cluster.local:9092
    automq-automq-enterprise-controller-2.automq-automq-enterprise-controller-headless.default.svc.cluster.local:9092
    automq-automq-enterprise-broker-0.automq-automq-enterprise-broker-headless.default.svc.cluster.local:9092

此时我们可以在 Kubernetes 上看到对应的Pod。

消息">05 发送和消费消息

由于默认开启 SASL,需要提前在本地准备好 client.properties 用于身份认证(admin/admin为默认账号和密码)。

security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
    username="admin" \
    password="admin";

使用 AutoMQ 的镜像启动一个作为 Client 的 Pod,将 client.properties 文件拷贝到 client pod 的 /tmp 目录下。

kubectl run automq-automq-enterprise-client --restart='Never' --image registry.cn-shanghai.aliyuncs.com/automq/automq-enterprise:1.1.0 --namespace default --command -- sleep infinity
kubectl cp --namespace default client.properties automq-automq-enterprise-client:/tmp/client.properties
kubectl exec --tty -i automq-automq-enterprise-client --namespace default -- bash

进入 client pod 以后,到 /opt/automq/kafka 目录下执行如下命令来完成消息的收发:

cd /opt/automq/kafka

bin/kafka-console-producer.sh \
            --producer.config /tmp/client.properties \
            --bootstrap-server automq-automq-enterprise.default.svc.cluster.local:9092 \
            --topic test

bin/kafka-console-consumer.sh \
            --consumer.config /tmp/client.properties \
            --bootstrap-server automq-automq-enterprise.default.svc.cluster.local:9092 \
            --topic test \
            --from-beginning

参考资料

[1] AWS - Install or update to the latest version of the AWS CLI: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
[2] AWS - Configure the AWS CLI: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
[3] Kubernetes - Install Tools: https://kubernetes.io/docs/tasks/tools/
[4] AutoMQ - WAL Storage: https://docs.automq.com/automq/architecture/s3stream-shared-streaming-storage/wal-storage
[5] automq-eks-example - aws.yaml: https://github.com/AutoMQ/automq-eks-example/blob/main/aws.yaml


http://www.niftyadmin.cn/n/5845603.html

相关文章

springcloud gateway 负载均衡

Spring Cloud Gateway的负载均衡是Spring Cloud生态系统中一个非常重要的功能,它使得微服务架构中的服务调用能够更加高效和均衡。以下是关于Spring Cloud Gateway负载均衡的详细解析: 一、Spring Cloud Gateway简介 Spring Cloud Gateway是一个基于Sp…

使用 Apifox、Postman 测试 Dubbo 服务,Apache Dubbo OpenAPI 即将发布

作者:何亮,Apache Dubbo Contributor Apache Dubbo OpenAPI 简介 设计背景 在微服务体系中,RPC 服务的文档管理、测试、调用协作一直都是影响研发效能的关键一环,这些难题通常是由于 RPC 的特性所决定的:RPC 服务的…

SpringSecurity:授权服务器与客户端应用(入门案例)

文章目录 一、需求概述二、开发授权服务器1、pom依赖2、yml配置3、启动服务端 三、开发客户端应用1、pom依赖2、yml配置3、SecurityConfig4、接口5、测试 一、需求概述 maven需要3.6.0以上版本 二、开发授权服务器 1、pom依赖 <dependency><groupId>org.springfr…

leetcode_深度遍历和广度遍历 100. 相同的树

100. 相同的树 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两棵树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 思路: (递归法) 返回True的情况: 两棵树都为空两棵树相同 返回False的情况: 两棵…

知识图谱智能应用系统:数据存储架构与流程解析

在当今数字化时代,知识图谱作为一种强大的知识表示和管理工具,正逐渐成为企业、科研机构以及各类智能应用的核心技术。知识图谱通过将数据转化为结构化的知识网络,不仅能够高效地存储和管理海量信息,还能通过复杂的查询和推理,为用户提供深度的知识洞察。然而,构建一个高…

RK3568上使用C++结合V4L2拉流,并RKMPP硬件编解码,并保存为MP4文件

在RK3568平台上使用C结合V4L2捕获视频流&#xff0c;并通过RKMPP进行硬件编码后保存为MP4文件&#xff0c;可以按照以下步骤实现&#xff1a; 1. 环境准备 硬件&#xff1a;RK3568开发板、摄像头模块。软件依赖&#xff1a; Linux内核支持V4L2。Rockchip MPP库&#xff08;RKM…

【RocketMQ 存储】- 同步刷盘和异步刷盘

文章目录 1. 前言2. 概述3. submitFlushRequest 提交刷盘请求4. FlushDiskWatcher 同步刷盘监视器5. 同步刷盘但是不需要等待刷盘结果6. 小结 本文章基于 RocketMQ 4.9.3 1. 前言 RocketMQ 存储部分系列文章&#xff1a; 【RocketMQ 存储】- RocketMQ存储类 MappedFile【Rock…

React 生命周期函数详解

React 组件在其生命周期中有多个阶段&#xff0c;每个阶段都有特定的生命周期函数&#xff08;Lifecycle Methods&#xff09;。这些函数允许你在组件的不同阶段执行特定的操作。以下是 React 组件生命周期的主要阶段及其对应的生命周期函数&#xff0c;并结合了 React 16.3 的…