GCP管理多个云功能流的最佳方式



我正在学习GCP,并阅读有关通信和管理云功能的不同方法,我最终想知道何时使用提供GCP的每个服务。

所以,我一直在阅读GCP Composer,GCP Workflows,Cloud Pub/Sub,我不清楚何时使用每一个,或者使用简单的HTTP调用。

我明白这在很大程度上取决于你正在构建的应用程序,但例如,如果我正在构建一个支付网关,并且某些功能应该在付款验证后被触发,例如发送电子邮件,制作不相关的业务逻辑,将购买添加到销售平台。那么,我应该用哪一种方式来管理这个流程,在哪种情况下使用其他方式会更好呢?我应该使用事件来创建带有Pub/Sub的异步流,还是使用像composer和工作流这样的复杂解决方案?或者只是简单的HTTP调用?

一如既往,视情况而定!即使在您的用例中,也要视情况而定!好的,在付款之后,您想要发送电子邮件,进行业务逻辑,将订单添加到数据库,…

但是,是否所有这些操作都可以并行完成,或者您需要以特定顺序执行它们,如果一个步骤失败,则停止该过程?

在第一种情况下,您可以使用发布了1条消息(payment OK)的Cloud PubSub,然后并行地向多个函数扩展。否则,您可以使用工作流来测试函数的响应,然后调用或不调用以下函数。使用composer,您可以执行更多的检查和操作。

您还可以想象在24小时后发送另一封电子邮件以感谢客户的订单,并使用Cloud Task延迟操作。

您谈到了云功能,但您也有其他解决方案来托管GCP上的代码:App Engine和Cloud Run。云功能在大多数时候是单一用途的。发送电子邮件是一个完美的功能。

现在,如果你有"一组函数"要浏览库存,请查看对象详细信息、查看价格并预订对象(验证订单)。(仓库中的订单内容)、"函数"都是单一用途的,但与同一个领域相关:仓库管理。因此,你可以创建一个web服务器,提出不同的路径来管理仓库(一个微服务的仓库,如果你喜欢),并托管它在CloudRun或App Engine。

每个产品都有它的优点和缺点。当您了解GCP上的存储时,您也将看到这一点。大多数情况下,你可以用几种产品来实现目标,但如果你不使用正确的产品,它会变慢,或者花费更多。

最新更新