用例:构造一条消息,在kafka中显示一段时间后

pn9klfpd  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(400)

我有这样一个场景,我想将消息发送到一个警报服务,该服务将处理该消息并将其发送到hipchat。
但我只想让消息在一分钟内激活。如果hipchat已关闭(假设),则不应将消息发送到hipchat。
我正在使用kafka,因此其中一个服务将消息发送给kafka,然后该消息被处理该消息的警报服务(它轮询该服务)使用(kafka consumer),同时处理该服务检查现在的时间和消息的时间是否不超过一分钟。如果没有,它会将消息发送到hipchat Aynchronous。
增强功能:
我想要一种方法来构造一个自我毁灭的信息,这样我在一分钟后就会自动消失。Kafka有办法吗?或者有没有比Kafka(Flink/sqs)更好的替代品。如果是,怎么做?

lzfw57am

lzfw57am1#

您可以使用Kafka主题配置 retention.ms 以及 delete.retention.ms 如主题级配置中所述。
这个 retention.ms 应设置为1分钟(60000毫秒),并且 delete.retention.ms 在您的情况下应设置为0。这样,这些信息在被删除之前会在Kafka主题中保留一分钟。然而,这也意味着,如果您的消费者花费超过一分钟的时间来使用所有消息(尤其是在从头开始阅读主题时),您可能会丢失消息。
有关这些配置的详细信息如下:
delete.retention.ms:保留日志压缩主题的delete tombstone标记的时间量。如果使用者从偏移量0开始,则此设置还提供了必须完成读取的时间界限,以确保获得最后阶段的有效快照(否则,可能会在完成扫描之前收集删除的逻辑删除)。
retention.ms:如果使用“删除”保留策略,此配置控制在丢弃旧日志段以释放空间之前保留日志的最长时间。这表示消费者必须多久读取数据的sla。如果设置为-1,则不应用时间限制。

相关问题