配置外网客户端访问Kafka Broker
本章节适用于MRS 3.2.0及之后版本。
操作场景
外网环境Kafka客户端访问部署在内网的Kafka Broker,需开启Kafka内外网分流访问。
前提条件
- Broker所在节点同时具有内网IP和外网IP,Broker绑定在内网IP上,外网无法访问。或者Broker所在节点只具有内网IP,外部服务通过网闸机映射访问内网。
- ZooKeeper服务正常。
- Kafka实例状态和磁盘状态均正常。
操作步骤
- 登录FusionInsight Manager界面。
- 选择“集群 > 服务 > Kafka > 实例 > Broker > 实例配置 > 全部配置”。在搜索框输入“broker.id”,查看并记录当前Broker实例的Broker ID。
- 重复2,查看并记录每一个Broker实例的Broker ID。
- 选择“集群 > 服务 > Kafka > 配置 > 全部配置 > Broker(角色) > 服务”。在搜索框分别输入“advertised”和 "actual",会出现如下图所示五个配置项,可参考表1配置具体参数。
表1 参数配置说明 配置项
描述
取值要求
enable.advertised.listener
是否开启“advertised.listeners”配置,默认值为“false”。
配置“enable.advertised.listener”参数值为“true”。
说明:安装Kafka服务时,此参数初始化配置不能设置为“true”,设置为“true”的前提条件是Broker实例和ZooKeeper必须处于正常运行状态。
advertised.broker.id.ip.map
Kafka对外发布的IP地址,默认值为空。
格式为:Broker ID:IP。多个Broker可为同一IP地址。配置多个映射时,使用英文半角逗号分隔。
将2中记录的每个Broker实例的Broker ID与此Broker将要绑定的IP做映射。
例如有三个Broker实例和一个IP地址,Broker ID分别为1,2,3,IP地址为10.xxx.xxx.xxx,则配置格式为1:10.xxx.xxx.xxx,2:10.xxx.xxx.xxx,3:10.xxx.xxx.xxx。
advertised.broker.id.port.map
Kafka对外发布的端口,默认值为空。
格式为:Broker ID:Port。“Port”为将要绑定的端口,此端口为自定义端口,配置的端口必须为可用的端口。配置多个映射时,使用英文半角逗号分隔。
将2中记录的每个Broker实例的Broker ID与此Broker将要绑定的端口做映射。
例如有三个Broker实例和三个Port,Broker ID分别为1,2,3,Port分别为3307,3308,3309,则配置格式为1:3307,2:3308,3:3309。
actual.broker.id.ip.map
Kafka实际绑定的IP地址,默认值为空。
格式为:Broker ID:IP。配置多个映射时,使用英文半角逗号分隔。
将2中记录的每个Broker实例的Broker ID与此Broker将要绑定的IP做映射。
例如有三个Broker实例和一个IP地址,Broker ID分别为1,2,3,IP地址为10.xxx.xxx.xxx,则配置格式为1:10.xxx.xxx.xxx,2:10.xxx.xxx.xxx,3:10.xxx.xxx.xxx。
actual.broker.id.port.map
Kafka实际绑定的端口, 默认值为空。
格式为:Broker ID:Port。“Port”为将要绑定的端口,此端口为自定义端口,配置的端口必须为可用的端口。配置多个映射时,使用英文半角逗号分隔。
将2中记录的每个Broker实例的Broker ID与此Broker将要绑定的端口做映射。
例如有三个Broker实例和三个Port,Broker ID分别为1,2,3,Port分别为3307,3308,3309,则配置格式为1:3307,2:3308,3:3309。
- 配置完成后,左上角单击“保存”,在Kafka“实例”界面,勾选Broker实例,选择“更多 > 滚动重启实例”,等待滚动重启完成生效。
- (可选)如果需要关闭此配置,将“enable.advertised.listener”设置为“false”,单击“保存”。在Kafka“实例”界面,勾选Broker实例,选择“更多 > 滚动重启实例”,等待滚动重启完成生效。
- 开启Kerberos认证集群开启“enable.advertised.listener”配置后,客户端只支持使用Kerberos认证,不支持使用Plain认证。
- 参数“advertised.broker.id.port.map”与参数“actual.broker.id.port.map”中的“Port”可以配置为相同端口。