> ## 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 配置

> AutoMQ optimizes Kafka operations with cloud-native scalability and cross-AZ routing for cost efficiency, reducing inter-zone traffic and ensuring data locality.

在 AWS、GCP 等云环境，跨 AZ 传输会产生流量费用。使用 AutoMQ 可以规避 Kafka 的生产、消费和服务端副本复制流量。

配置 AutoMQ 节省跨 AZ 流量传输，需要满足如下条件：

1. **云厂商环境约束** ：目前仅建议在**AWS、GCP** 环境进行**多 AZ 部署** 时才配置 AutoMQ 多点写入。如果应用架构为单 AZ，或者是其他云厂商（跨 AZ 传输暂不收费）则不建议配置。

2. **多 AZ 部署约束：** 使用 AutoMQ 多点写入架构节省跨 AZ 传输流量，需要应用和 AutoMQ 满足多 AZ 部署。

   1. **AZ数量约束：** 目前仅支持Producer、Consumer、AutoMQ 进行三 AZ部署，如果 Producer 和 Consumer 多于三 AZ，仍然会产生部分跨 AZ流量。

   2. **AZ容量均衡约束：** 目前仅支持 AZ均衡部署，即 Producer、Consumer 应用在每个 AZ的容量相同。如果容量不均衡，仍然会产生部分跨 AZ流量。

## 创建 AutoMQ 实例

使用 AutoMQ 节省跨 AZ 流量传输，首先需要确保创建符合条件的 AutoMQ 实例。具体操作步骤如下：

1. 登录 AutoMQ BYOC 环境。

2. 创建实例，网络配置中选择三可用区。WAL 类型选择 **S3WAL 或 FSWAL** 。

<Tip>
  **注意：**

  创建 AutoMQ 实例时， AZ必须和 Kafka 生产者、消费者所在的部署区域一致，并保证所有 AZ内的容量均衡。如果容量不均衡，则可能仍然会产生一定比例的跨 AZ 传输流量。

  *举例：Kafka 生产者、消费者部署在 A、B、C 三个区域，且三个区域的应用容量相同，此时创建 AutoMQ 实例时，也选择 A、B、C 三个区域。*
</Tip>

## 配置映射规则，识别客户端来源 CIDR 所在 Rack

由于 Kafka 协议的限制，服务端无法感知 Client 所属的 Rack。AutoMQ 为了感知 Client 所属的 Rack，避免跨可用区生产消费，提供了[客户端配置▸](/zh/automq-cloud/eliminate-inter-zone-traffics/client-configuration)和服务端两种 Rack 配置方式。本章节介绍基于服务端的动态配置方法。 `automq.zone.cidr.blocks` 。

<Tip>
  在云环境中 Rack 通常设置为 [ZoneId](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html)，后面提到的 Rack 和 Zone 概念可以互相替换。
</Tip>

`automq.zone.cidr.blocks` 配置格式如下：

```text theme={null}

# ex. use1-az1@10.0.0.0/19,10.0.32.0/19<>use1-az2@10.0.64.0/19<>use1-az3@10.0.96.0/19

$zone1@$CIDRBlock1,$CIDRBlock2<>$zone2@$CIDRBlock3<>$zone3@$CIDRBlock4,$CIDRBlock5

```

* 不同 Zone 之间的配置用  `<>`  分隔。
* 每个 Zone 的配置：首先是 Zone 开头，然后中间是  `@`  分隔，后面拼接当前 Zone 的 CIDR 列表。CIDR 列表之间的CIDR 使用  `,`  分隔。

AutoMQ 会根据 Client 连接的 IP 依次根据 CIDR 匹配出 Client 所属的 Zone。

服务端配置  `automq.zone.cidr.blocks`  适合的场景：

* Client 所在的 Zone 之间有明确的 CIDR 分段。
* Flink / Spark / Presto 等计算引擎不方便根据负载所在的 Zone 设置不同的 Client 配置。
  若同时设置了服务端配置和客户端配置，那么配置优先级为： `client.id`  >  `automq.zone.cidr.blocks`  > Consumer  `client.rack` 。
