本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为您的 Amazon MSK 集群配置自定义域名
您可以将 MSK 配置的集群配置为发布自定义域名,而不是默认 AWS生成的代理地址。自定义域名在您的 Amazon MSK 配置中定义一次,并自动应用于集群中的每个代理,包括在扩展操作期间添加的新代理。这在 ZooKeeper 和 Kraft 元数据管理模式下均有效。
自定义域名的工作原理
当您将该custom.advertised.listeners属性添加到您的亚马逊 MSK 配置中时,亚马逊 MSK 会执行以下操作:
-
验证配置(监听器名称、格式和唯一性)。
-
解析每个经纪人的
{broker_id}模板。 -
通过滚动重启应用配置,一次只能一个代理。
该属性采用以下格式。
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,您的自定义域名将替换被覆盖侦听器的默认地址。因此,在应用配置之前,您的网络层必须到位并经过验证。如果网络和信任层不存在、无法解析、无法访问且不受客户端信任,则客户端无法重新连接。即使客户端在片刻之前连接过,也是如此。如果客户无法解析自定义域,他们就会断开连接。
先决条件
在集群上配置自定义域名之前,请确保满足以下条件:
-
您的集群是该州的 MSK 预置集群(标准或快速代理)。
ACTIVE -
每个侦听器对应集群上的一种身份验证类型。您只能为客户端侦听器设置自定义广告终端节点:
CLIENT、CLIENT_SECURE、CLIENT_SECURE_PUBLIC、、CLIENT_SASL_SCRAMCLIENT_SASL_SCRAM_PUBLICCLIENT_IAM、和。CLIENT_IAM_PUBLIC不支持内部侦听器(REPLICATION和CONTROLLER),在验证时会被拒绝。您指定的监听器还必须绑定(活动)到您的集群上。例如,如果您的集群仅使用 IAM 身份验证,CLIENT_SECURE则指定会被拒绝,并且错误消息会列出集群的有效客户端监听器。 -
在应用配置之前,您的网络层已部署到位并经过验证。应用后,所有刷新元数据的客户端都会收到自定义域地址。如果客户无法解析自定义域,他们就会断开连接。在应用配置之前,请确保您的网络层已设置完毕并可从所有客户端访问。有关网络负载均衡器、Route 53 和 AWS 证书管理器设置的完整示意图演练,请参阅大数据博客上的 Amazon MSK 集群
配置自定义域名。 AWS