gpt4 book ai didi

google-cloud-functions - 在 Google Functions 中处理 Pubsub 消息

转载 作者:行者123 更新时间:2023-12-04 13:14:29 25 4
gpt4 key购买 nike

我正在学习 Google 云功能,并将它们设置为由队列中的消息触发。我认为我真的没有掌握这里的一些概念,因为我有很多问题并且无法在任何地方找到答案。有很多解释函数和客户端的示例,但我还没有找到将两者合并的示例。

  1. 函数由主题而非订阅触发。这一个很奇怪,因为单个主题可以有多个订阅,甚至每个订阅有多个订阅者,这意味着函数不确认消息,因为它不知道要确认哪个消息。

  2. 基于第一个问题,当一条消息到达主题时,所有订阅者函数都会执行吗?那些正在做一些工作的函数呢?一个订阅有多个订阅者怎么办?

  3. 真正的请求式订阅是否可以在函数中实现?这意味着该功能会因为需要拉取项目而不断运行,这样做成本高昂而且是错误的做法。

  4. 能否从函数中取消消息?似乎这些函数只有在允许重试的情况下部署时才会重试,但随后他们会尝试立即重新运行该函数,只要设置了重试期(默认为 7 天),这可能会导致极高的成本,如果一个函数是 buggy ,是一个完全垃圾的模式。

所有这些让我觉得:

  1. 从订阅触发功能并让订阅能够确认/拒绝它们比听主题要好得多

  2. 我应该选择推送订阅和 HTTP 功能,这看起来更可控(我可能错了,没试过)

任何人都可以阐明这一点吗?我能否通过该函数轻松控制消息?如果消息被取消或重新发送,我能否期望该函数重新运行?

最佳答案

  1. 也许关键的信息是,当您将 Cloud Pub/Sub 主题 Hook 到 Cloud Function 时,系统会创建一个推送订阅,以便将消息发送到该 Cloud Function。

  2. 您绑定(bind)到主题的每个云功能都将有自己的订阅,并将接收发布到该主题的所有消息。如果该函数的一个实例已经在工作,那么可以创建另一个实例来处理负载(或者将在已经运行的实例之间进行负载平衡)。推送订阅实际上并没有针对同一订阅的多个订阅者的概念。从 Cloud Pub/Sub 的角度来看,只有一个端点可以向其推送消息。 Cloud Functions 接收这些消息并将它们分发到服务正在运行的 Function 实例中。

  3. 将拉取订阅作为 Cloud Functions 来实现是非常困难的。您需要一个触发器来启动函数,并且它必须在分配给它运行的时间内完成所有工作。

  4. 听起来您想在重试消息时使用回退。目前不支持该功能,但我们知道该限制并希望尽快在此处进行改进。

关于google-cloud-functions - 在 Google Functions 中处理 Pubsub 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61595070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com