第 13 章 在代理上设置吞吐量和存储限制
重要
此功能是一个技术预览功能,不适用于生产环境。如需更多信息,请参阅发行注记。
此流程描述了如何在 Kafka 集群中的代理上设置吞吐量和存储限制。启用 Strimzi Quotas 插件,并使用 配额 属性配置限制
该插件提供存储利用率配额和吞吐量限制的动态分布。
-
存储配额根据磁盘存储利用率的 Kafka producer 节流。限制可以以字节为单位(
storage.per.volume.limit.min.available.bytes)或百分比(storage.per.volume.limit.min.available.ratio)的可用磁盘空间,单独应用到每个磁盘。当集群中的任何代理超过配置的磁盘阈值时,客户端会节流,以防止磁盘被填满并超过容量。 - 在所有客户端间动态分布总吞吐量限制。例如,如果您设置了 40 MBps producer 字节位阈值,则两个制作者之间的分布不是静态的。如果一个生成者使用 10 MBps,则另一个制作者可以使用 30 MBps。
- 特定用户(客户端)可以从限制中排除。
注意
使用插件,您只会看到聚合的配额指标,而不是每个客户端的指标。
先决条件
- 每个主机上安装了 Apache Kafka 的流,且配置文件可用。
流程
编辑 Kafka 配置属性文件。
插件配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 加载插件。
- 2
- 将生成者字节阈值设置为 1 MBps。
- 3
- 设置消费者字节阈值。1 Mbps.
- 4
- 将可用字节数设置为 500 GB。
- 5
- 将存储检查间隔(以秒为单位)设置为 5 秒。默认为 60 秒。将此属性设置为 0 以禁用检查。
- 6
- Kafka 集群 bootstrap 服务器地址。如果
storage.check-interval是 >0,则需要此属性。所有以client.quota.callback.static.kafka.admin.前缀开始的配置属性都传递给 Kafka Admin 客户端配置。 - 7
- 排除
my-user-1和my-user-2的限制。每个主体都必须以User:前缀。
storage.per.volume.limit.min.available.bytes和storage.per.volume.limit.min.available.ratio是互斥的。仅配置其中一个参数。注意支持的配置属性的完整列表可在 插件文档 中找到。
使用默认配置文件启动 Kafka 代理。
su - kafka /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.properties
su - kafka /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Kafka 代理是否正在运行。
jcmd | grep Kafka
jcmd | grep KafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow