更新时间:2023-08-16 GMT+08:00

使用DNAT访问Kafka实例

操作场景

使用DNAT访问Kafka实例时,通过端口映射方式,实现Kafka实例对公网提供服务。

前提条件

已创建弹性公网IP,弹性公网IP的数量与Kafka实例中代理个数相同。

步骤一:获取Kafka实例的信息

  1. 登录管理控制台。
  2. 在管理控制台左上角单击,选择区域。

    请选择Kafka实例所在的区域。

  3. 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
  4. 单击Kafka实例名称,进入实例详情页面。
  5. 在“基本信息”页面的“连接信息”区域,获取并记录Kafka实例的内网连接地址。在“网络”区域,获取并记录Kafka实例所在的虚拟私有云和子网。

    图1 Kafka实例信息

步骤二:创建公网NAT网关

  1. 在管理控制台左上角单击,选择“网络 > NAT网关”,进入“公网NAT网关”页面。
  2. 单击“创建公网NAT网关”,进入“创建公网NAT网关”页面。
  3. 设置如下参数。

    其他参数请根据实际情况填写,如果想要了解更多的参数信息,请参考创建公网NAT网关

    图2 创建公网NAT网关

  4. 单击立即创建,进入规格确认页面。
  5. 确认规格无误后,单击“提交”。

步骤三:添加DNAT规则

  1. 在“公网NAT网关”页面,在新创建的公网NAT网关后,单击“设置规则”,进入公网NAT网关详情页。
  2. 在“DNAT规则”页签,单击“添加DNAT规则”,弹出“添加DNAT规则”对话框。

    图3 公网NAT网关详情页

  3. 设置如下参数。

    • 使用场景:选择“虚拟私有云”
    • 端口类型:选择“具体端口”
    • 支持协议:选择“TCP”
    • 弹性公网IP:选择已创建的弹性公网IP
    • 公网端口:输入“9011”
    • 实例类型:选择“自定义”
    • 私网IP:输入获取Kafka实例的信息中记录的Kafka实例的一个内网连接地址
    • 私网端口:输入“9011”

    如果想要了解更多的参数信息,请参考添加DNAT规则

    图4 添加DNAT规则

  4. 单击“确定”,完成DNAT规则的添加。

    DNAT规则添加成功后,在DNAT规则列表中查看此规则的状态,若“状态”为“运行中”,表示创建成功。

  5. 获取Kafka实例的信息中记录的其他内网连接地址创建DNAT规则,每个DNAT规则需要设置不同的弹性公网IP

    创建DNAT规则的具体步骤参考2~4

  6. DNAT规则全部创建成功后,在“DNAT规则”页签,查看已创建的DNAT规则,并记录私网IP对应的弹性公网IP。

    图5 DNAT规则列表

步骤四:在Kafka控制台绑定弹性公网IP地址

  1. 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
  2. 单击Kafka实例名称,进入实例详情页面。
  3. 在“基本信息”页面的“高级配置”区域,单击“修改”。
  4. 将“advertised.listeners IP/域名”改为DNAT规则中的弹性公网IP,内网连接地址和弹性公网IP的对应关系与添加DNAT规则中记录的对应关系保持一致,单击“保存”。

    图6 修改advertised.listeners IP(使用DNAT访问)

步骤五:验证接口连通性

参考连接未开启SASL的Kafka实例或者连接已开启SASL的Kafka实例,测试是否可以生产和消费消息。

测试接口连通性时,注意以下几点:

  • 连接Kafka实例的地址为“advertised.listeners IP:9011”,以图6为例,连接Kafka实例的地址为“9.xxx.xxx.11:9011,9.xxx.xxx.12:9011,9.xxx.xxx.13:9011”。
  • 在Kafka实例安全组的入方向规则中放通9011端口。
  • 连接Kafka实例的客户端已开启公网访问功能。