> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 术语

> AutoMQ 提供云原生的 Apache Kafka 兼容服务，具备高成本效益和弹性，通过EBS和S3对象存储实现低延迟消息处理和无限容量扩展。

本文列举 AutoMQ 各模块涉及的技术术语和简要概述。

## 术语分类

* **云服务概念：** 涵盖了 AutoMQ 所使用的云服务和产品组件。用户可以参考各云厂商的文档了解更多相关细节。

* **Apache Kafka 概念：** 涵盖了 Apache Kafka 既有的部分概念，可能因 AutoMQ 的实现而有所变化。

* **AutoMQ 概念：** 涵盖了 AutoMQ 各模块中定义的新概念。

## 云服务术语

### EBS

EBS（Elastic Block Store）是一种高性能、可扩展、持久且低延迟的块存储服务。在 AutoMQ 的系统设计中，会利用 EBS 暂存一部分尚未上传至对象存储的消息数据，以实现更低的消息收发延迟。不同云服务提供商可能对 EBS 有不同的产品命名。

### S3

S3（Simple Storage Service）是一种安全、持久、高度可扩展的对象存储服务。在 AutoMQ 的系统设计中，使用对象存储作为消息主存储介质，可以实现按需使用、按量付费、相比 Apache Kafka 最高 90% 的存储成本缩减效果。 S3 在后续的文档中也代指对象存储，不同云服务提供商的对象存储服务可能有不同的产品命名。

### Bucket

Bucket 是对象存储服务的基本容器，用于有效管理数据。在部署 AutoMQ 时，需要提前分配一些 Bucket 作为消息存储的配置。

### Auto Scaling Group (ASG)

Auto Scaling Group（ASG）是一种可以自动调整计算资源来满足应用负载需求的服务。ASG 能够自动增加或减少虚拟主机实例组中的实例数量，确保应用的高可用性并优化成本。AutoMQ 使用 ASG 来实现自动弹性伸缩等功能。不同的云服务提供商可能会对 ASG 使用不同的产品名称。

## Apache Kafka 术语

### Broker

Broker 是 Apache Kafka 系统中用于处理、存储和传输消息的逻辑角色，多个 Broker 节点共同构成 Kafka 集群。在 AutoMQ 的系统设计中，Broker 特指常规处理收发消息的逻辑角色，不包含用于调度分配的 Controller 角色。

### Controller

Controller 是 Apache Kafka 系统中用于调度、协调多节点间任务分配的逻辑角色，根据不同的版本，Controller 可能有不同的实现方案。在 AutoMQ 的系统设计中，Controller 基于 KRaft 模式构建，不再依赖 ZooKeeper 服务。多个 Controller 节点中会有一个 Active Controller 节点作为主要决策节点。

### Partition

Partition 是 Apache Kafka Topic 的逻辑分片，用于实现数据的并行处理和提升吞吐能力。每个 Partition 是一个有序、不可变的消息序列。在 AutoMQ 系统设计中，Partition 保留了其原有功能定义，但不再存储在本地磁盘，而是利用对象存储进行构建，以实现无限容量和按需扩展的效果。

## AutoMQ 术语

### AutoMQ

AutoMQ 是基于云原生理念重新设计的新一代 Apache Kafka 发行版，在 100% 兼容 Apache Kafka 协议的前提下提供了高达 10 倍的 TCO 优势（参见[成本基准测试](/zh/automq/benchmarks/automq-vs-apache-kafka-benchmarks-and-cost)）和秒级弹性伸缩能力。

### S3Stream

S3Stream 是基于云存储服务构建的低延迟、高吞吐、弹性低成本的流存储库，通过 Stream 操作接口被外部集成。AutoMQ 基于 S3Stream 封装替换了 Apache Kafka 的 Log 存储，在保证上层功能和 Apache Kafka 100% 兼容前提下，提供了高达 10 倍的 TCO 优势（参见[成本基准测试](/zh/automq/benchmarks/automq-vs-apache-kafka-benchmarks-and-cost)）和秒级弹性伸缩能力。

### S3Url

S3Url 是 AutoMQ 用于快速启动集群的统一配置项，其中包含对象存储接入点和身份标识等信息。推荐用户使用安装工具生成 S3Url 配置，以便提前验证参数合法性和资源兼容性，并避免 Apache Kafka 中繁琐的集群 ID 生成和存储格式化操作。

### WAL

WAL 是 S3Stream 库中的高吞吐持久化写缓冲，用于临时缓存尚未提交到对象存储的数据。WAL 支持多种存储后端，包括 S3 WAL、EBS WAL、Regional EBS WAL 和 NFS WAL。不同后端的延迟特性各不相同：EBS WAL 和 Regional EBS WAL 适用于低延迟场景；S3 WAL 是 AutoMQ Open Source 的默认选项，更适合对延迟不敏感的场景。在 AutoMQ 中，WAL 按 Broker 粒度分配，在 Broker 接收消息后，首先将消息按顺序写入 WAL，并立即返回客户端响应，然后异步将 WAL 数据上传到对象存储。

### Stream Object

Stream Object 是 S3Stream 中用于存储 Stream 数据的最小单元。每个 Stream 的数据被分布在多个 Stream Object 中，这些 Stream Object 组合在一起模拟出一个无限的 Stream。

### Stream Set Object

Stream Set Object 是 S3Stream 中用于合并零散的 Stream 写入请求的临时数据结构。在上传 WAL 的临时数据到对象存储时，会将多个零散的 Stream 的数据合并为一个 Stream Set Object 后再上传。随后，会异步将 Stream Set Object 分类整理为普通的 Stream Object。
