apache-kafka - 不在时间戳 Kafka 之前处理
问题描述
Kafka 中是否有开箱即用的机制来生成在给定时间戳之前不应处理的记录,而不管主题的内容如何?
谢谢。
解决方案
没有;Kafka 通过偏移量而不是时间戳来消费。但这并不能阻止您的消费者将消息传递给某些辅助工作人员“优先队列”,这些辅助工作人员“优先队列”按时间戳排序,该时间戳由检查下一个要处理的事件的调度程序线程支持
唯一的问题是,如果您在等待消息“O@T”时处理时间为“T-1”的消息偏移量“O+1”,并且您的消费者崩溃并丢失了该内存队列,那么您实际上是在跳过消息(提交 O+1 而不处理 O)
根据您的应用程序,这可能没问题,因为您可以再次复制记录以将它们排队。您还可以通过特定时间戳(默认为生成记录的时间)寻找特定的偏移量或获取(近似)偏移量
推荐阅读
- javascript - 是否可以在 Python 模型中使用来自 javascript 的 API 密钥,然后在 Javascript 中使用该模型?
- haskell - Haskell中`->`,`=`和``的优先级是什么?
- c# - 访问令牌仅在 oAuth 1 天后过期
- ruby - 我正在学习 rspec 并且我已经编写了一个规范,但它部分失败了
- c++ - Visual Studio C++ 控制台应用程序构建并运行,但不创建 EXE 文件
- c# - 将哈希算法与 ReadOnlySpan 一起使用
- javascript - 如何从 li 获取 id?
- android - 通过 https 发送的 Firebase 身份验证类型电子邮件/密码凭据?
- json - jq 读取内联字符串,而不是从标准输入
- c++ - 设置 Qt::FramelessWindowHint 时隐藏阴影