更新时间:2024-05-29 GMT+08:00

配置Kafka流控

操作场景

本章节指导您在控制台对用户/客户端/Topic进行流量控制,控制生产/消费消息的上限速率。

用户/客户端的流控作用范围是整个broker,Topic的流控作用范围是指定Topic。

操作影响

  • 当流控值达到上限后,会导致生产/消费的时延增大。
  • 设置的流控值较小且生产者速率较大时,可能会造成生产超时、消息丢失,导致部分消息生产失败。
  • 初始生产/消费的流量较大,如果设置一个较小的流控值,会导致生产/消费的时延增大、部分消息生产失败。建议逐次减半设置流控值,待生产/消费稳定后继续减半设置,直到设置为目标流控值。例如初始生产流量100MB/s,可先设置生产流控为50MB/s,待稳定后再修改为25MB/s,直到目标流控值。

前提条件

  • 如果需要对用户进行流量控制,请在创建Kafka实例时,开启SASL_SSL功能。然后在控制台的“用户管理”页面,获取用户名。
  • 如果需要对指定客户端进行流量控制,请在客户端配置中获取client ID。
  • 如果需要对指定Topic进行流量控制,请在控制台的“Topic管理”页面,获取Topic名称。

创建用户/客户端流控

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

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

  3. 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
  4. 单击Kafka实例的名称,进入实例详情页面。
  5. 在左侧导航栏单击“流控管理 > 流控列表”,进入流控列表页面。
  6. 在页面顶端单击“User/Client”,进入“User/Client”页签。
  7. 在页面左上角单击“创建流控”,弹出“创建流控”对话框。
  8. 设置流控参数。

    表1 流控参数说明

    参数名称

    说明

    用户名

    输入指定用户名,对此用户进行流控。如果需要对所有用户进行流控,在“用户名”后,单击“选择默认”。

    流控创建完后,无法修改“用户名”。

    客户端ID

    输入指定客户端ID,对此客户端进行流控。如果需要对所有客户端进行流控,在“客户端ID”后,单击“选择默认”。

    流控创建完后,无法修改“客户端ID”。

    生产上限速率

    设置生产上限速率,单位为MB/s。为空时,表示不设置速率。

    消费上限速率

    设置消费上限速率,单位为MB/s。为空时,表示不设置速率。

    • 未开启SASL的实例,在“创建流控”对话框中,不显示“用户名”。
    • “用户名”和“客户端ID”不可同时为空。
    • “生产上限速率”和“消费上限速率”不可同时为空。

  9. 单击“确定”,跳转到“后台任务管理”页面,当流控任务的“状态”为“成功”时,表示流控创建成功。

    进入“流控管理 > 流控列表”页面,在“User/Client”页签中,单击页面左上角的“仅设置了用户名”/“仅设置了客户端ID”/“设置了用户名和客户端ID”,输入新创建的流控名称,按“Enter”,查看新创建的流控。

    图1 查看新创建的流控

创建Topic流控

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

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

  3. 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
  4. 单击Kafka实例的名称,进入实例详情页面。
  5. 在左侧导航栏单击“流控管理 > 流控列表”,进入流控列表页面。
  6. 在页面顶端单击“Topic”,进入“Topic”页签。
  7. 在页面左上角单击“创建流控”,弹出“创建流控”对话框。
  8. 设置流控参数。

    表2 流控参数说明

    参数名称

    说明

    Topic名称

    输入指定Topic名称,对此Topic进行流控。

    流控创建完后,无法修改“Topic名称”。

    生产上限速率

    设置生产上限速率,单位为MB/s。为空时,表示不设置速率。

    消费上限速率

    设置消费上限速率,单位为MB/s。为空时,表示不设置速率。

    “生产上限速率”和“消费上限速率”不可同时为空。

  9. 单击“确定”,跳转到“后台任务管理”页面,当流控任务的“状态”为“成功”时,表示流控创建成功。

    进入“流控管理 > 流控列表”页面,在“Topic”页签中,在页面左上角的搜索框中输入新创建的流控名称,按“Enter”,查看新创建的流控。

编辑流控

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

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

  3. 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
  4. 单击Kafka实例的名称,进入实例详情页面。
  5. 在左侧导航栏单击“流控管理 > 流控列表”,进入流控列表页面。
  6. 在待修改的流控所在行,单击“编辑”,弹出“编辑流控”对话框。
  7. 修改生产上限速率或者消费上限速率,单击“确定”,跳转到“后台任务管理”页面,当流控任务的“状态”为“成功”时,表示流控修改成功。

    进入“流控管理 > 流控列表”页面,查看修改后流控的生产上限速率或者消费上限速率。

    “生产上限速率”和“消费上限速率”不可同时为空。

导出流控列表

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

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

  3. 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
  4. 单击Kafka实例的名称,进入实例详情页面。
  5. 在左侧导航栏单击“流控管理 > 流控列表”,进入流控列表页面。
  6. 导出流控列表。

    • 用户/客户端流控:在“User/Client”页签,单击“导出 > 导出全部数据到XLSX”/“导出 > 导出已选中数据到XLSX”。
    • Topic流控:在“Topic”页签,单击“导出 > 导出全部数据到XLSX”/“导出 > 导出已选中数据到XLSX”。

删除流控

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

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

  3. 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
  4. 单击Kafka实例的名称,进入实例详情页面。
  5. 在左侧导航栏单击“流控管理 > 流控列表”,进入流控列表页面。
  6. 在待删除的流控所在行,单击“删除”,弹出“删除流控”对话框。
  7. 单击“确定”,跳转到“后台任务管理”页面,当流控任务的“状态”为“成功”时,表示成功删除流控。