#26577·pulsar

[错误][函数] 在 ATLEAST_ONCE 条件下,事件时间窗口函数永远不会接收延迟消息

作者: Dream95创建于 2026年9月14日更新于 2026年9月14日
标签type/bug

报告前搜索

QQ 读取发布政策

  • 我知道不支持的版本不会得到错误修正. 我会尝试在Pulsar客户端和Pulsar经纪人的支持版本上转载这个问题.

QQ 用户环境

Pulsar 函数, Java 窗口函数 WindowFunction 执行器.

QQ 问题描述

发生了什么事:

当事件时窗口函数收到被提取的时间戳位于当前水印后的信件时,WindowFunctionExecutor.process () 将它视为迟到的tuple并保持其出窗. 由于 DataTopic 晚期未设置, 日志接收了晚期的 Tuple 。 这不会处理。 使用后端 DataTopic 设置后, 它通过 sendAsync () 重排那里值 。 这条路都不符合记录 在 ATLEAST ONCE 下, 唯一一个 Ack 发生在进程 Window () 中, 它行走 刚刚发射的窗子的拖转 。 迟到的信息从不进入窗口,所以从不在列表中. 窗口功能还重写函数Details. 正在处理 MANUAL 的担保, 并委托 WindowFunction Executor, 所以 JavaInstanceRunnable 也没有启动它 。

预期: 在 ATLEAST ONCE 下,运行时间决定不处理的消息仍应被触发,或明确失败,因此订阅的 Cursor可以移动过它.

QQ 错误消息

页:1 没有例外。 唯一的信号是该日志行,加上在晚事时间数据到来时对函数的输入订阅的积压和未备份数不断增加.


* 转载问题

1. 部署带有时间戳的 Java 窗口功能 Extractor ClassName, 窗口Length DurationMs, 滑动的Interval DurationMs, 最大LagMs和水印EmitIntervalMs set, 处理 Guarantes=ATLEAST ONCE, 并且没有后台DataTopic 。
2. 制作带有越来越多的事件时间戳的讯息,从而使水印进步。
3. 制作一份电文,其提取的时间戳位于目前的水印后。
4. 日志显示迟到的拖行,消息从不出现在任何窗口引用中,输入订阅也从不碰撞. 运行相同的步骤 ATMOST ONCE 锁定消息。

补充资料

无回复( N)

你愿意提交公关吗?

- 我愿意提交公关!