Cloud Pub/Sub - 单个消息延迟他人(HoL 阻塞?)

Cloud Pub/Sub - Single message delaying others (HoL blocking?)

今天经历了一件比较有趣的事情。 我有一批未确认的消息,它们都在同一秒内发布,出于预期的原因,其中一条消息未被确认。但是,剩余的消息一直在尝试传递,并且正在成功处理和确认。

为什么会这样?这是预期的行为吗?消息没有排序键,也没有在给定订阅上启用消息排序。

此外,我什至尝试在 Google Cloud 中手动确认这些消息,但它似乎没有做任何事情。当我在 ACKing 后拉动时,出现了相同的消息。

您可能 运行 遇到了文档“dealing with duplicates”部分注释中描述的情况。如果将消息一起批处理,则批处理中的所有消息都必须得到确认,否则可能会重新传递整批消息。这意味着,如果在单个发布请求中将 100 条消息批处理在一起,并且其中 99 条被确认,但 1 条未被确认,那么所有 100 条消息都可能会重新传送。有一些努力在服务中尽可能避免这种重复交付,但不能保证。