第 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。
  • 特定用户(客户端)可以从限制中排除。
注意

使用插件,您只会看到聚合的配额指标,而不是每个客户端的指标。

先决条件

流程

  1. 编辑 Kafka 配置属性文件。

    插件配置示例

    # ...
    client.quota.callback.class=io.strimzi.kafka.quotas.StaticQuotaCallback 
    1
    
    client.quota.callback.static.produce=1000000 
    2
    
    client.quota.callback.static.fetch=1000000 
    3
    
    client.quota.callback.static.storage.per.volume.limit.min.available.bytes=500000000000 
    4
    
    client.quota.callback.static.storage.check-interval=5 
    5
    
    client.quota.callback.static.kafka.admin.bootstrap.servers=localhost:9092 
    6
    
    client.quota.callback.static.excluded.principal.name.list=User:my-user-1;User:my-user-2 
    7
    
    # ...
    Copy to Clipboard Toggle word wrap

    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-1my-user-2 的限制。每个主体都必须以 User: 前缀。

    storage.per.volume.limit.min.available.bytesstorage.per.volume.limit.min.available.ratio 是互斥的。仅配置其中一个参数。

    注意

    支持的配置属性的完整列表可在 插件文档 中找到。

  2. 使用默认配置文件启动 Kafka 代理。

    su - kafka
    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.properties
    Copy to Clipboard Toggle word wrap
  3. 验证 Kafka 代理是否正在运行。

    jcmd | grep Kafka
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat