Kafka 连接节流

Kafka connect throttling

我需要代表一组只公开 REST API 的懒惰消费者使用消息。因此,我计划使用接收器连接器从 Kafka 主题中获取消息并对公开的 APIs.

执行 HTTP POST 操作

要考虑的关键因素之一是节流。您建议使用什么机制来限制接收器任务以满足 API 的层级 SLA。我知道 Kafka 具有客户端配额功能,但是,跟踪 API requests/min 或秒的最佳机制是什么,可以动态调整客户端配额?

我认为为您的 REST API 实施速率限制的最佳方法是在您的连接器代码中通过在必要时在 SinkTask.put() 中进行阻塞来实现。您可能需要考虑 SinkTask 级别的速率限制是否足够,或者您需要它是全局的(由于涉及协调,因此更加复杂)。

您正在考虑使用 Kafka 配额的优点是分布式方面已为您处理,但我认为这些目前只能根据传输的字节数进行配置。