问题描述
鉴于我编写了一个应用程序,该应用程序从IoT设备收集数据,并让我的客户通过向他们提供http端点凭据来订阅这些数据。
我必须处理他们的端点没有响应或运行缓慢,然后才将消息缓冲到发送(消耗)为止,这需要进行存储。
要限制此存储空间,我想知道我是否可以观察到消费者的延迟,并且在达到阈值时会自动增加主题保留率(稍后会自动减少)
这将帮助我在默认情况下设置较短的保留时间,同时又能够处理不可用的外部端点而不会丢失消息。 (当然,如果滞后持续增长,我将不得不采取其他措施)。
那么我的问题是,卡夫卡有可能吗?这样做时,我有没有必要做些事情?
非常感谢
解决方法
您可以调整主题相对于kafka命令行工具的保留时间:
bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name test --alter --add-config retention.ms=55000
或者,如果您想在代码中进行操作,请查看TopicCommand
类。