> ## 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.

# Broker 和 Controller 配置

> Optimize your AutoMQ deployment with cloud-native scalability, full Kafka compatibility, and cost-efficient configurations, supporting seamless integration with modern data lakes.

本文旨在解释 AutoMQ 部署过程中涉及的配置参数，包括配置定义、描述、设置范围和规范等，以帮助开发者在生产环境中进行必要的自定义调整。

AutoMQ 基于对象存储实现了存储计算分离，完全兼容 Apache Kafka，因此关于 Kafka 的功能配置（例如 ACL、网络等）均可以参考[官方配置文档](https://kafka.apache.org/documentation/#brokerconfigs)。本文档仅列举 AutoMQ 新增的存储模块相关的配置参数。

## 公共配置

### elasticstream.enable

| 列表项<br />    | 说明<br />                         |
| ------------ | -------------------------------- |
| 配置描述<br />   | 是否启动 AutoMQ，该参数必须设置为 true。<br /> |
| 值类型<br />    | boolean<br />                    |
| 默认值<br />    | false<br />                      |
| 合法输入范围<br /> | N/A<br />                        |
| 重要级别<br />   | 高，需要谨慎配置<br />                   |

### automq.zonerouter.channels

通过开启跨可用区请求路由功能，减少跨可用区数据传输，减少流量成本。该功能详情请参考 [概述▸](/zh/automq/eliminate-inter-zone-traffics/overview) 。

| 列表项<br />    | 说明<br />                                                                                                                                           |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| 配置描述<br />   | 跨可用区的 channel 配置，通过配置跨可用区路由组件可极大减少跨 zone 流量带来的成本。目前只支持对象存储，格式是：`0@s3://$bucket?region=$region[&batchInterval=250][&maxBytesInBatch=8388608]`<br /> |
| 值类型<br />    | string<br />                                                                                                                                       |
| 默认值<br />    | null<br />                                                                                                                                         |
| 合法输入范围<br /> | N/A<br />                                                                                                                                          |
| 重要级别<br />   | 高，需要谨慎配置<br />                                                                                                                                     |

## S3Stream 相关配置

### s3.data.buckets

| 列表项<br />    | 说明<br />                                                                                                                                                                                                                                                                                           |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 配置描述<br />   | 数据面对象存储的URI。格式是：`0@s3://$bucket?region=$region[&endpoint=$endpoint][&pathStyle=$enablePathStyle][&authType=$authType][&accessKey=$accessKey][&secretKey=$secretKey][&checksumAlgorithm=$checksumAlgorithm]`。<br />不同厂商配置参见：[对象存储配置▸](/zh/automq/configuration/object-storage-configuration)。<br /> |
| 值类型<br />    | string<br />                                                                                                                                                                                                                                                                                       |
| 默认值<br />    | null<br />                                                                                                                                                                                                                                                                                         |
| 合法输入范围<br /> | N/A<br />                                                                                                                                                                                                                                                                                          |
| 重要级别<br />   | 高，需要谨慎配置<br />                                                                                                                                                                                                                                                                                     |

### s3.ops.buckets

| 列表项<br />    | 说明<br />                                                                                                                                                                                                                                                                                            |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 配置描述<br />   | 控制面对象存储的URI。格式是：`1@s3://$bucket?region=$region[&endpoint=$endpoint][&pathStyle=$enablePathStyle][&authType=$authType][&accessKey=$accessKey][&secretKey=$secretKey][&checksumAlgorithm=$checksumAlgorithm]`。<br />不同厂商配置参见：[对象存储配置▸](/zh/automq/configuration/object-storage-configuration) 。<br /> |
| 值类型<br />    | string<br />                                                                                                                                                                                                                                                                                        |
| 默认值<br />    | null<br />                                                                                                                                                                                                                                                                                          |
| 合法输入范围<br /> | N/A<br />                                                                                                                                                                                                                                                                                           |
| 重要级别<br />   | 高，需要谨慎配置<br />                                                                                                                                                                                                                                                                                      |

### s3.wal.path

| 列表项<br />    | 说明<br />                                                                                                                                                                                         |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 配置描述<br />   | 用于存储本地 WAL 的块存储设备挂载路径，格式是：<br />`0@s3://$bucket?region=$region[&batchInterval=250][&maxBytesInBatch=8388608]`<br />不同厂商参见：[对象存储配置▸](/zh/automq/configuration/object-storage-configuration)<br /> |
| 值类型<br />    | string<br />                                                                                                                                                                                     |
| 默认值<br />    | null<br />                                                                                                                                                                                       |
| 合法输入范围<br /> | N/A<br />                                                                                                                                                                                        |
| 重要级别<br />   | 高，需要谨慎配置<br />                                                                                                                                                                                   |

### s3.wal.cache.size

| 列表项<br />    | 说明<br />                                                                                                                            |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| 配置描述<br />   | WAL（预写日志）缓存是一个FIFO（先进先出）队列，其中包含尚未上传到对象存储的数据，以及已经上传但尚未从缓存中逐出的数据。当尚未上传的缓存数据填满整个容量时，存储将会对后续请求产生回压，直到完成数据上传。默认情况下，它会根据内存设置一个合理的值。<br /> |
| 值类型<br />    | long，单位为 byte<br />                                                                                                                 |
| 默认值<br />    | -1，由程序自动设置合适的参数值<br />                                                                                                              |
| 合法输入范围<br /> | \[1, ...]<br />                                                                                                                     |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                                                                                      |

### s3.wal.upload.threshold

| 列表项<br />    | 说明<br />                                                                                             |
| ------------ | ---------------------------------------------------------------------------------------------------- |
| 配置描述<br />   | 触发 WAL 向对象存储上传的阈值。配置值需要小于  `s3.wal.cache.size` 。配置值越大，数据聚合度越高，元数据存储的成本越低。默认情况下，它会根据内存设置一个合理的值。<br /> |
| 值类型<br />    | long，单位为 byte<br />                                                                                  |
| 默认值<br />    | -1，由程序自动设置合适的参数值<br />                                                                               |
| 合法输入范围<br /> | \[1, ...]<br />                                                                                      |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                                                       |

### s3.block.cache.size

| 列表项<br />    | 说明<br />                                                                                                                                   |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| 配置描述<br />   | `s3.block.cache.size`  是 block cache 的大小。block cache 用于缓存从对象存储读取的冷数据。建议将此配置项设置为大于 4MB \* 每个分区的并发冷读数，以实现更好的冷读性能。默认情况下，它会根据内存设置一个合理的值。<br /> |
| 值类型<br />    | long，单位为 byte<br />                                                                                                                        |
| 默认值<br />    | -1，由程序自动设置合适的参数值<br />                                                                                                                     |
| 合法输入范围<br /> | \[1, ...]<br />                                                                                                                            |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                                                                                             |

### s3.stream.object.compaction.interval.minutes

| 列表项<br />    | 说明<br />                                                               |
| ------------ | ---------------------------------------------------------------------- |
| 配置描述<br />   | Stream object 进行 compaction 的间隔周期。间隔越大，API调用的成本越低，但它增加了元数据存储的规模。<br /> |
| 值类型<br />    | int，单位是分钟<br />                                                        |
| 默认值<br />    | 30<br />                                                               |
| 合法输入范围<br /> | \[1, ...]<br />                                                        |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                         |

### s3.stream.object.compaction.max.size.bytes

| 列表项<br />    | 说明<br />                                                                  |
| ------------ | ------------------------------------------------------------------------- |
| 配置描述<br />   | Stream object compaction 允许合成的对象的最大大小。这个值越大，API调用的成本越高，但元数据存储的规模越小。<br /> |
| 值类型<br />    | long，单位为 byte<br />                                                       |
| 默认值<br />    | 10737418240<br />                                                         |
| 合法输入范围<br /> | \[1, ...]<br />                                                           |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                            |

### s3.stream.set.object.compaction.interval.minutes

| 列表项<br />    | 说明<br />                                                                                     |
| ------------ | -------------------------------------------------------------------------------------------- |
| 配置描述<br />   | 设置 stream object compaction 的间隔。这个值越小，元数据存储的规模就越小，数据变得紧凑的时间也会更早。然而，最终生成的流对象经历的压缩次数会增加。<br /> |
| 值类型<br />    | int，单位是分钟<br />                                                                              |
| 默认值<br />    | 5<br />                                                                                      |
| 合法输入范围<br /> | \[1, ...]<br />                                                                              |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                                               |

### s3.stream.set.object.compaction.cache.size

| 列表项<br />    | 说明<br />                                                      |
| ------------ | ------------------------------------------------------------- |
| 配置描述<br />   | 在 stream object compaction 过程中可用的内存大小。这个值越大，API调用的成本越低。<br /> |
| 值类型<br />    | long，单位是 byte<br />                                           |
| 默认值<br />    | 209715200<br />                                               |
| 合法输入范围<br /> | \[1048576, ...]<br />                                         |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                |

### s3.stream.set.object.compaction.stream.split.size

| 列表项<br />    | 说明<br />                                                                                                                                                                                         |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 配置描述<br />   | 在 Stream object compaction 过程中，如果单个 Stream 中的数据量超过此阈值，这个 Stream 的数据将直接被分割并写入单个 Stream 对象。这个值越小，数据从 Stream set object 中分割的时间就越早，Stream object compaction 的后续 API 调用成本就越低，但是分割的 API 调用成本就越高。<br /> |
| 值类型<br />    | long，单位为 byte<br />                                                                                                                                                                              |
| 默认值<br />    | 8388608<br />                                                                                                                                                                                    |
| 合法输入范围<br /> | \[1, ...]<br />                                                                                                                                                                                  |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                                                                                                                                                   |

### s3.network.baseline.bandwidth

| 列表项<br />    | 说明<br />                                                                                                                                                                        |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 配置描述<br />   | 对象存储请求的总可用带宽。这是用来防止 stream set object compaction 和追赶读取占据正常读写流量。生产和消费也会分别消耗进出流量。<br />例如，假设这个值设置为100MB/s，而正常的读写流量是80MB/s，那么用于 stream set object compaction 的可用流量就是 20MB/s。<br /> |
| 值类型<br />    | long，单位为 byte/s<br />                                                                                                                                                           |
| 默认值<br />    | 1073741824<br />                                                                                                                                                                |
| 合法输入范围<br /> | \[1, ...]<br />                                                                                                                                                                 |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                                                                                                                                  |

### s3.stream.allocator.policy

| 列表项<br />    | 说明<br />                                                                                                                               |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
| 配置描述<br />   | S3Stream 内存分配器策略。请注意，当配置为使用DIRECT内存时，需要修改虚拟机选项中的堆大小（例如，-Xmx）和直接内存大小（例如，-XX:MaxDirectMemorySize）。您可以通过环境变量KAFKA\_HEAP\_OPTS来设置它们。<br /> |
| 值类型<br />    | string<br />                                                                                                                           |
| 默认值<br />    | POOLED\_HEAP<br />                                                                                                                     |
| 合法输入范围<br /> | POOLED\_HEAP, POOLED\_DIRECT<br />                                                                                                     |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                                                                                         |

### s3.telemetry.metrics.level

| 列表项<br />    | 说明<br />                                                                                                    |
| ------------ | ----------------------------------------------------------------------------------------------------------- |
| 配置描述<br />   | 设置记录 Metrics 的级别。<br />"INFO"级别包括大多数用户应该关心的指标，例如常见流操作的吞吐量和延迟。"DEBUG"级别包括有助于诊断的详细指标，例如写入底层块设备时不同阶段的延迟。<br /> |
| 值类型<br />    | string<br />                                                                                                |
| 默认值<br />    | INFO<br />                                                                                                  |
| 合法输入范围<br /> | INFO, DEBUG<br />                                                                                           |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                                                              |

### s3.telemetry.exporter.report.interval.ms

| 列表项<br />    | 说明<br />                  |
| ------------ | ------------------------- |
| 配置描述<br />   | 设置 Metrics 导出的时间间隔。<br /> |
| 值类型<br />    | int，单位是毫秒<br />           |
| 默认值<br />    | 30000<br />               |
| 合法输入范围<br /> | N/A<br />                 |
| 重要级别<br />   | 低，设置相对宽泛<br />            |

### s3.telemetry.metrics.base.labels

| 列表项<br />    | 说明<br />                                                                                |
| ------------ | --------------------------------------------------------------------------------------- |
| 配置描述<br />   | Metrics 的多维标签，用于为所有监控指标附加静态的多维度标签，实现指标的分类、聚合与精细化分析。格式是：`key1=value1,key2=value2`。<br /> |
| 值类型<br />    | string<br />                                                                            |
| 默认值<br />    | null<br />                                                                              |
| 合法输入范围<br /> | N/A<br />                                                                               |
| 重要级别<br />   | 中，需要谨慎配置<br />                                                                          |

### s3.telemetry.metrics.exporter.uri

| 列表项<br />    | 说明<br />                                                                                                                                                                                                                                             |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 配置描述<br />   | Metrics 的导出uri。格式是：`$type://?$param1=$value1&$param2=$value2`。目前type支持的类型有prometheus, otlp。<br />prometheus的格式：`prometheus://?host=$hostname&port=$port`<br />otlp的格式：`otlp://?endpoint=$endpoint&protocol=$protocol&compression=$compression`<br /> |
| 值类型<br />    | string<br />                                                                                                                                                                                                                                         |
| 默认值<br />    | null<br />                                                                                                                                                                                                                                           |
| 合法输入范围<br /> | N/A<br />                                                                                                                                                                                                                                            |
| 重要级别<br />   | 高，需要谨慎配置<br />                                                                                                                                                                                                                                       |

## 持续数据重平衡配置

### metric.reporters

| 列表项<br />    | 说明<br />                                                                                                                                                                                                                                                    |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 配置描述<br />   | metrics reporters 的类列表。实现 `org.apache.kafka.common.metrics.MetricsReporter` 接口可以实现动态加载新的 Metrics。 `JmxReporter` 总是被包含在内，以注册JMX统计信息。要启用自动平衡（AutoBalancing）， `metric.reporters` 必须包含 `kafka.autobalancer.metricsreporter.AutoBalancerMetricsReporter` 。<br /> |
| 值类型<br />    | list<br />                                                                                                                                                                                                                                                  |
| 默认值<br />    | ""<br />                                                                                                                                                                                                                                                    |
| 合法输入范围<br /> | N/A<br />                                                                                                                                                                                                                                                   |
| 重要级别<br />   | 低，设置相对宽泛<br />                                                                                                                                                                                                                                              |

### autobalancer.reporter.metrics.reporting.interval.ms

| 列表项<br />    | 说明<br />                        |
| ------------ | ------------------------------- |
| 配置描述<br />   | Metrics Reporter 上报数据的间隔。<br /> |
| 值类型<br />    | long，单位是毫秒<br />                |
| 默认值<br />    | 10000<br />                     |
| 合法输入范围<br /> | \[1000, ...]<br />              |
| 重要级别<br />   | 高，需要谨慎配置<br />                  |

### autobalancer.controller.enable

| 列表项<br />    | 说明<br />         |
| ------------ | ---------------- |
| 配置描述<br />   | 是否启用自动重平衡。<br /> |
| 值类型<br />    | boolean<br />    |
| 默认值<br />    | true<br />       |
| 合法输入范围<br /> | N/A<br />        |
| 重要级别<br />   | 高，需要谨慎配置<br />   |

### autobalancer.controller.anomaly.detect.interval.ms

| 列表项<br />    | 说明<br />                                                                                                                             |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| 配置描述<br />   | Controller 检查是否需要进行数据重平衡的最小间隔。下一次重平衡的实际时间也取决于已经被重新分配的分区的数量。降低最小检查间隔可以提高数据重新平衡的灵敏度。该值应大于 broker metrics的上报间隔，以防止控制器错过最近重新分配的结果。<br /> |
| 值类型<br />    | long，单位是毫秒<br />                                                                                                                     |
| 默认值<br />    | 60000<br />                                                                                                                          |
| 合法输入范围<br /> | \[1, ...]<br />                                                                                                                      |
| 重要级别<br />   | 高，需要谨慎配置<br />                                                                                                                       |

### autobalancer.controller.exclude.topics

| 列表项<br />    | 说明<br />                       |
| ------------ | ------------------------------ |
| 配置描述<br />   | 需要排除，不进行数据重平衡的 Topic 列表。<br /> |
| 值类型<br />    | list<br />                     |
| 默认值<br />    | ""<br />                       |
| 合法输入范围<br /> | N/A<br />                      |
| 重要级别<br />   | 高，需要谨慎配置<br />                 |

### autobalancer.controller.exclude.broker.ids

| 列表项<br />    | 说明<br />                           |
| ------------ | ---------------------------------- |
| 配置描述<br />   | 需要排除，不进行数据重平衡的 Broker Id 列表。<br /> |
| 值类型<br />    | list<br />                         |
| 默认值<br />    | ""<br />                           |
| 合法输入范围<br /> | N/A<br />                          |
| 重要级别<br />   | 高，需要谨慎配置<br />                     |

## Table Topic

<Tip>
  Table Topic 是 AutoMQ 面向现代数据湖架构设计的核心功能，其核心作用在于实现流式数据与静态数据湖的集成，通过架构创新解决传统流批分离、ETL 复杂、成本高昂等问题。详情参见 [概述▸](/zh/automq/table-topic/overview)。
</Tip>

当前完整的 Table Topic 配置模型，包括 Topic 级别配置、record 转换、数据变换、错误处理、Schema Registry 客户端选项、Catalog 认证以及各类 Catalog 选项，请参见 [Table Topic 配置▸](/zh/automq/table-topic/table-topic-configuration)。
