繁体   English   中英

为什么 GCP Pub/Sub 发布消息两次?

[英]Why does GCP Pub/Sub publish a message twice?

我有一个 Google Cloud Function 订阅了一个主题。 当云调度程序每 5 分钟调用一次 GCP Pub/Sub 时,我们的 GCP Pub/Sub 会向主题发布一条消息。 问题是云函数有时会在调用第一个函数后的 90 秒内被调用两次。

订阅的确认截止日期为 600 秒。 所以,我想不通为什么 GCF 在 90 年代被 GCP Pub/Sub 调用两次。 在 90 年代后调用两次与某事有关吗?

您的副本可以在发布端或订阅端。 如果重复的消息具有不同的消息 ID,那么您的副本将在发布端生成。 这可能是由于发布端为响应可重试错误而进行的重试造成的。 如果消息具有相同的消息 ID,则复制发生在 Pub/Sub 中的订阅端。

Cloud Pub/Sub 提供至少一次交付语义。 这意味着可能会出现重复,即使您确认了该消息并且即使确认截止日期尚未过去。 如果您希望对交付有更强的保证,您可以使用 Pub/Sub 的exactly once 功能,该功能目前处于公共预览阶段。 但是,这将要求您使用HTTP 触发器设置 Cloud Function,并在 Pub/Sub 中创建指向 function 地址的推送订阅,因为无法在由创建的订阅上设置 exactly once 设置云函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM