繁体   English   中英

使用 Cloud Functions、Pub/Sub 和死信队列/主题时,我的方法是否正确?

[英]Is my approach right when using Cloud Functions, Pub/Sub and Dead-letter queues/topics?

我正在开发我的第一个微服务,我选择将它部署在 Cloud Functions 服务中,并通过 Pub/Sub 完成消息传递。

Cloud Functions 服务由 Pub/Sub 主题中的事件(发布的消息)触发,微服务处理消息,到目前为止一切顺利。 我知道 Cloud Functions 可以保证消息的确认和传递,这很好。

Cloud Functions 服务具有自动重试功能:如果我在代码中抛出异常,则会发生新的程序执行。 为了避免在连续失败时循环执行,我引入了一个 if 条件来检查消息的“年龄”,并且由于我不想简单地丢弃消息,我将它发送/发布到另一个 Pub/Sub 主题我已经命名了“我的死信队列”主题。

由于我现在对所有事情都不确定,所以我问你:我的方法是否足够好? 考虑到 Cloud Functions 微服务和 Pub/Sub 消息传递,您会怎么做?

是的,如果您想根据消息年龄规则在死信主题中发送不良消息,那么您的方法很好。

如果你想在失败次数上做(5次失败后,把消息放在死信主题中),你不能用直接插在PubSub上的云function来实现。 您需要创建一个 HTTP 函数,然后创建 PubSub 推送订阅,您可以在其上设置死信主题(在死信主题中自动发送消息之前,最少 5 分钟失败)。

第二种解决方案的优点是您无需处理消息并将其推送到 Cloud Functions 中的 pubsub(所有处理时间都需要花钱),它是自动的,因此您可以省钱;)

每次遇到异常并将其插入死信主题时,您尝试使用的方法都很好。 以后每次尝试实现异常处理时它都会起作用,但如果你想在那里抛出更多异常,你应该考虑改变你管理异常的方式。

暂无
暂无

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

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