配置Kafka流控
操作场景
本章节指导您在控制台对用户/客户端/Topic进行流量控制,控制生产/消费消息的上限速率。
用户/客户端的流控作用范围是整个broker,Topic的流控作用范围是指定Topic。
操作影响
- 当流控值达到上限后,会导致生产/消费的时延增大。
- 设置的流控值较小且生产者速率较大时,可能会造成生产超时、消息丢失,导致部分消息生产失败。
- 初始生产/消费的流量较大,如果设置一个较小的流控值,会导致生产/消费的时延增大、部分消息生产失败。建议逐次减半设置流控值,待生产/消费稳定后继续减半设置,直到设置为目标流控值。例如初始生产流量100MB/s,可先设置生产流控为50MB/s,待稳定后再修改为25MB/s,直到目标流控值。
前提条件
- 如果需要对用户进行流量控制,请在创建Kafka实例时,开启SASL_SSL功能。然后在控制台的“用户管理”页面,获取用户名。
- 如果需要对指定客户端进行流量控制,请在客户端配置中获取client ID。
- 如果需要对指定Topic进行流量控制,请在控制台的“Topic管理”页面,获取Topic名称。
创建用户/客户端流控
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在左侧导航栏单击“流控管理 > 流控列表”,进入流控列表页面。
- 在页面顶端单击“User/Client”,进入“User/Client”页签。
- 在页面左上角单击“创建流控”,弹出“创建流控”对话框。
- 设置流控参数。
表1 流控参数说明 参数名称
说明
用户名
输入指定用户名,对此用户进行流控。如果需要对所有用户进行流控,在“用户名”后,单击“选择默认”。
流控创建完后,无法修改“用户名”。
客户端ID
输入指定客户端ID,对此客户端进行流控。如果需要对所有客户端进行流控,在“客户端ID”后,单击“选择默认”。
流控创建完后,无法修改“客户端ID”。
生产上限速率
设置生产上限速率,单位为MB/s。为空时,表示不设置速率。
消费上限速率
设置消费上限速率,单位为MB/s。为空时,表示不设置速率。
- 未开启SASL的实例,在“创建流控”对话框中,不显示“用户名”。
- “用户名”和“客户端ID”不可同时为空。
- “生产上限速率”和“消费上限速率”不可同时为空。
- 单击“确定”,跳转到“后台任务管理”页面,当流控任务的“状态”为“成功”时,表示流控创建成功。
进入“流控管理 > 流控列表”页面,在“User/Client”页签中,单击页面左上角的“仅设置了用户名”/“仅设置了客户端ID”/“设置了用户名和客户端ID”,输入新创建的流控名称,按“Enter”,查看新创建的流控。
图1 查看新创建的流控
创建Topic流控
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在左侧导航栏单击“流控管理 > 流控列表”,进入流控列表页面。
- 在页面顶端单击“Topic”,进入“Topic”页签。
- 在页面左上角单击“创建流控”,弹出“创建流控”对话框。
- 设置流控参数。
表2 流控参数说明 参数名称
说明
Topic名称
输入指定Topic名称,对此Topic进行流控。
流控创建完后,无法修改“Topic名称”。
生产上限速率
设置生产上限速率,单位为MB/s。为空时,表示不设置速率。
消费上限速率
设置消费上限速率,单位为MB/s。为空时,表示不设置速率。
“生产上限速率”和“消费上限速率”不可同时为空。
- 单击“确定”,跳转到“后台任务管理”页面,当流控任务的“状态”为“成功”时,表示流控创建成功。
进入“流控管理 > 流控列表”页面,在“Topic”页签中,在页面左上角的搜索框中输入新创建的流控名称,按“Enter”,查看新创建的流控。
编辑流控
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在左侧导航栏单击“流控管理 > 流控列表”,进入流控列表页面。
- 在待修改的流控所在行,单击“编辑”,弹出“编辑流控”对话框。
- 修改生产上限速率或者消费上限速率,单击“确定”,跳转到“后台任务管理”页面,当流控任务的“状态”为“成功”时,表示流控修改成功。
进入“流控管理 > 流控列表”页面,查看修改后流控的生产上限速率或者消费上限速率。
“生产上限速率”和“消费上限速率”不可同时为空。
导出流控列表
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在左侧导航栏单击“流控管理 > 流控列表”,进入流控列表页面。
- 导出流控列表。
- 用户/客户端流控:在“User/Client”页签,单击“导出 > 导出全部数据到XLSX”/“导出 > 导出已选中数据到XLSX”。
- Topic流控:在“Topic”页签,单击“导出 > 导出全部数据到XLSX”/“导出 > 导出已选中数据到XLSX”。
删除流控
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在左侧导航栏单击“流控管理 > 流控列表”,进入流控列表页面。
- 在待删除的流控所在行,单击“删除”,弹出“删除流控”对话框。
- 单击“确定”,跳转到“后台任务管理”页面,当流控任务的“状态”为“成功”时,表示成功删除流控。