c++ - 只读取来自 Kafka 主题的最后一条消息

标签 c++ apache-kafka video-streaming kafka-consumer-api

我正在尝试通过 Kafka 主题发送视频流,并在每个消息消费之间进行一些处理。此处理大约需要 20 毫秒,因此在 100 帧之后,我会产生相应的延迟。我可以检测到这种延迟,但是,我需要能够强制我的消费者从检测到延迟的那一刻起读取最新发送的帧。我知道这会导致跳过许多帧。

我使用的是基于 librdkafka 的 cppkafka。

我找不到能让我走上正确道路的线索,因为大多数答案要么与我的问题不同,要么使用仅在其他语言 API 中存在的概念。

对此事有什么想法吗?

最佳答案

一种简单但有点粗鲁的方法是检查队列中的帧数。如果高于某个上限阈值,则执行一个紧密循环,“消耗”并丢弃(即根本不处理)帧,直到达到下限阈值(在您的情况下是一个)。

完成紧密循环后,您将恢复队列的正常处理。

关于c++ - 只读取来自 Kafka 主题的最后一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51198703/

相关文章:

c++ - 使用来自同一 DLL 的 impls 导出 DLL API 和工厂

java - 如何使用java修改一个kafka主题的消息并将其发送到另一个kafka主题?

node.js - 在本地测试视频聊天应用程序的最佳方法是什么?

apache-flex - 如何获取流的名称(RTMFP NetGroup问题,Flex/AS3)

c++ - 如何在 Boost.Spirit 中跳过行/ block /嵌套 block 注释?

c++ - System()/windows 命令行命令不会更改目录?

c++ - C++ 中的可扩展和动态图形可视化库

noclassdeffounderror - kafka NoClassDefFoundError kafka/Kafka

apache-kafka - 无法反序列化 Avro 记录 - Apache flink SQL CLI

android - Android 中同时播放多个视频文件