gpt4 book ai didi

apache-kafka - 发布者的 KAFKA 消息限制?

转载 作者:行者123 更新时间:2023-12-04 04:50:29 25 4
gpt4 key购买 nike

我们正在使用 kafka 0.10.x,我正在寻找,如果有一种方法可以阻止发布者 kafka 在一小时内达到某些消息/限制后停止发送消息。这里的目标是限制用户仅在每小时/每天发送特定数量的消息? 如果有人遇到过类似的用例,请分享您的发现。提前致谢......

最佳答案

Kafka 有一些限制和配额机制,但没有一个完全符合您的要求,即根据每天的消息数严格限制生产者。

来自 https://kafka.apache.org/documentation/#design_quotas 的 Apache Kafka 0.11.0.0 文档

Kafka cluster has the ability to enforce quotas on requests to control the broker resources used by clients. Two types of client quotas can be enforced by Kafka brokers for each group of clients sharing a quota:

  • Network bandwidth quotas define byte-rate thresholds (since 0.9)

  • Request rate quotas define CPU utilization thresholds as a percentage of network and I/O threads (since 0.11)

客户端配额最早是在 Kafka 0.9.0.0 中引入的。对生产者和消费者实现速率限制,以防止客户端使网络饱和或垄断代理资源。

有关详细信息,请参阅 KIP-13:https://cwiki.apache.org/confluence/display/KAFKA/KIP-13+-+Quotas

0.9引入的quota机制是基于客户端配置中设置的client.id,可以很方便的更改。理想情况下,应在经过身份验证的用户名上设置配额,这样就不容易规避,因此在 0.10.1.0 中添加了额外的身份验证配额功能。

有关详细信息,请参阅 KIP-55:https://cwiki.apache.org/confluence/display/KAFKA/KIP-55%3A+Secure+Quotas+for+Authenticated+Users

上述两种配额机制都适用于数据量(即带宽限制),而不适用于消息数量或请求数量。如果客户端发送大量小消息或发出大量不返回消息的请求(例如,将 min.byte 配置为 0 的消费者),它仍然会压倒代理。为了解决这个问题,0.11.0.0 添加了对请求率限制的额外支持。

有关详细信息,请参阅 KIP-124:https://cwiki.apache.org/confluence/display/KAFKA/KIP-124+-+Request+rate+quotas

以所有这些为背景,如果您知道您的生产者总是发布特定大小的消息,那么您可以计算以 MB 表示的每日限制以及以 MB/秒表示的速率限制,您可以将其配置为配额。这并不完全符合您的需求,因为生产者可能会在 12 小时内不发送任何内容,然后尝试在短时间内以更快的速度发送,并且配额仍会将它们限制在较低的发布速率,因为该限制是每秒执行的,并且不是每天。

如果您不知道消息大小或者它变化很大,那么由于消息是使用生成请求发布的,您可以使用请求速率限制来控制允许经过身份验证的用户发布消息的速率,但同样不会是消息/天限制,甚至不会是带宽限制,而是作为“CPU 使用率阈值作为网络和 I/O 线程的百分比”。这有助于避免 DoS 问题,而不是真正限制消息计数。

如果您希望看到添加到 Kafka 的消息计数配额或消息存储配额,那么显然 Kafka 改进建议 (KIP) 流程有效,我们鼓励您在这个或任何其他领域提交改进建议。

详情请参阅 KIP 流程:https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals

关于apache-kafka - 发布者的 KAFKA 消息限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45530049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com