更新时间:2024-10-08 GMT+08:00

配置外网客户端访问Kafka Broker

本章节适用于MRS 3.2.0及之后版本。

操作场景

外网环境Kafka客户端访问部署在内网的Kafka Broker,需开启Kafka内外网分流访问。

前提条件

  • Broker所在节点同时具有内网IP和外网IP,Broker绑定在内网IP上,外网无法访问。或者Broker所在节点只具有内网IP,外部服务通过网闸机映射访问内网。
  • ZooKeeper服务正常。
  • Kafka实例状态和磁盘状态均正常。

操作步骤

  1. 登录FusionInsight Manager界面。
  2. 选择“集群 > 服务 > Kafka > 实例 > Broker > 实例配置 > 全部配置”。在搜索框输入“broker.id”,查看并记录当前Broker实例的Broker ID。
  3. 重复2,查看并记录每一个Broker实例的Broker ID。
  4. 选择“集群 > 服务 > 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。

  5. 配置完成后,左上角单击“保存”,在Kafka“实例”界面,勾选Broker实例,选择“更多 > 滚动重启实例”,等待滚动重启完成生效。
  6. (可选)如果需要关闭此配置,将“enable.advertised.listener”设置为“false”,单击“保存”。在Kafka“实例”界面,勾选Broker实例,选择“更多 > 滚动重启实例”,等待滚动重启完成生效。
  • 开启Kerberos认证集群开启“enable.advertised.listener”配置后,客户端只支持使用Kerberos认证,不支持使用Plain认证。
  • 参数“advertised.broker.id.port.map”与参数“actual.broker.id.port.map”中的“Port”可以配置为相同端口。