首页 > 解决方案 > 为什么使用 Gcloud Pub/Sub?

问题描述

为什么使用 Pub/Sub?用例:有一个 http 触发的“云功能”在其上发送一些数据。此函数在处理数据后,将数据发布到 Pub/Sub 主题。

然后是另一个 Cloud 函数,它是基于发布到该 Pub/sub 主题而触发的。因此,此 Cloud 函数从 pub/sub 获取已发布的数据并将其插入到 BigQuery 表中。

所以在这个用例中为什么要使用 pub sub,为什么我们不能只拥有一个从 http 命中获取数据并将其插入 BigQuery 的云函数。在这里选择 pub/sub 的设计思路是什么?

通常为什么使用 Pub/sub 架构?

标签: design-patternsgoogle-bigquerygcloudgoogle-cloud-pubsub

解决方案


在此架构中使用 Cloud Pub/Sub 可能有多种原因。一个原因是,如果有任何扇出或计划扇出,发布的数据不仅会出现在 BigQuery 中,还会出现在其他地方。如果没有 Pub/Sub,http 触发的 Cloud Function 必须了解所有感兴趣的数据接收者,并将其发送给每个接收者。使用 Pub/Sub,任何对传入数据感兴趣的附加服务都可以对数据创建单独的订阅,并独立于 BigQuery 使用它。

另一个原因是能够将数据批量插入 BigQuery,而不会增加对初始 Cloud Function 的 http 请求的延迟。这可能是为了提高效率或对传入的数据进行某种跨事件预处理。通过使用 Pub/Sub,第一个 Cloud Function 可以在发布到 Cloud Pub/Sub 成功后立即响应请求,不必等待任何其他请求,并且可以确定该请求最终会得到处理。

在现在或将来没有这两个的情况下,直接写入 BigQuery 可能是有意义的。


推荐阅读