

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为您的 Amazon MSK 集群配置自定义域名
<a name="custom-domain-names"></a>

您可以将 MSK 配置的集群配置为发布自定义域名，而不是默认 AWS生成的代理地址。自定义域名在您的 Amazon MSK 配置中定义一次，并自动应用于集群中的每个代理，包括在扩展操作期间添加的新代理。这在 ZooKeeper 和 Kraft 元数据管理模式下均有效。

**Topics**
+ [自定义域名的工作原理](#custom-domain-names-how-it-works)
+ [先决条件](#custom-domain-names-prerequisites)
+ [端到端设置自定义域名](custom-domain-setup.md)

## 自定义域名的工作原理
<a name="custom-domain-names-how-it-works"></a>

当您将该`custom.advertised.listeners`属性添加到您的亚马逊 MSK 配置中时，亚马逊 MSK 会执行以下操作：

1. 验证配置（监听器名称、格式和唯一性）。

1. 解析每个经纪人的`{broker_id}`模板。

1. 通过滚动重启应用配置，一次只能一个代理。

该属性采用以下格式。

```
custom.advertised.listeners=LISTENER_NAME://hostname-pattern:port+{broker_id}
```

例如，在包含三个代理的 IAM 集群上：

```
custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.example.com:9000+{broker_id}
```

这解析为以下地址：
+ 经纪商 1：`b-1.example.com:9001`
+ 经纪商 2：`b-2.example.com:9002`
+ 经纪商 3：`b-3.example.com:9003`

`{broker_id}`模板变量是必填的，必须出现在端口中，这样每个代理才能解析到一个唯一的地址。`+`操作员将代理 ID 添加到基本端口（9000 \+ 1 = 9001，9000 \+ 2 = 9002，9000 \+ 10 = 9010）。

如果您的集群有多个面向客户端的监听器，则可以通过用逗号分隔来为每个监听器分配不同的域。

```
custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.iam.example.com:9000+{broker_id},CLIENT_SASL_SCRAM://b-{broker_id}.scram.example.com:19000+{broker_id}
```

每个侦听器映射到一个自定义域。您不能将多个域分配给同一个监听器。但是，只要每个经纪人解析为唯一的`host:port`组合，听众就可以共享同一个域名。例如，两个监听器可以共享`b-{broker_id}.example.com`，只能按端口不同。

```
custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.example.com:9000+{broker_id},CLIENT_SASL_SCRAM://b-{broker_id}.example.com:19000+{broker_id}
```

这种行为在 ZooKeeper 和 Kraft 元数据管理模式下是相同的。

**在应用配置之前验证网络**  
当您申请时`custom.advertised.listeners`，您的自定义域名将替换被覆盖侦听器的默认地址。因此，在应用配置之前，您的网络层必须到位并经过验证。如果网络和信任层不存在、无法解析、无法访问且不受客户端信任，则客户端无法重新连接。即使客户端在片刻之前连接过，也是如此。如果客户无法解析自定义域，他们就会断开连接。

## 先决条件
<a name="custom-domain-names-prerequisites"></a>

在集群上配置自定义域名之前，请确保满足以下条件：
+ 您的集群是该州的 MSK 预置集群（标准或快速代理）。`ACTIVE`
+ 每个侦听器对应集群上的一种身份验证类型。您只能为客户端侦听器设置自定义广告终端节点：`CLIENT`、`CLIENT_SECURE`、`CLIENT_SECURE_PUBLIC`、、`CLIENT_SASL_SCRAM``CLIENT_SASL_SCRAM_PUBLIC``CLIENT_IAM`、和。`CLIENT_IAM_PUBLIC`不支持内部侦听器（`REPLICATION`和`CONTROLLER`），在验证时会被拒绝。您指定的监听器还必须绑定（活动）到您的集群上。例如，如果您的集群仅使用 IAM 身份验证，`CLIENT_SECURE`则指定会被拒绝，并且错误消息会列出集群的有效客户端监听器。
+ 在应用配置之前，您的网络层已部署到位并经过验证。应用后，所有刷新元数据的客户端都会收到自定义域地址。如果客户无法解析自定义域，他们就会断开连接。在应用配置之前，请确保您的网络层已设置完毕并可从所有客户端访问。有关网络负载均衡器、Route 53 和 AWS 证书管理器设置的完整示意图演练，请参阅大数据博客[上的 Amazon MSK 集群](https://aws.amazon.com/blogs/big-data/configure-a-custom-domain-name-for-your-amazon-msk-cluster/)配置自定义域名。 AWS 