如何解决在Google Cloud PlatformGCP中传播错误消息
我正在建立近乎实时的服务。输入是云存储桶和照片图像的斑点路径。这种可水平扩展的服务由多个组件组成,其中包括在k8上运行的ML模型和Google Cloud Functions,由于各种原因,每个组件都有可能失败。 ML模型是独立的,并且可以并行运行。每个组件都由该组件唯一的PubSub推送消息主题触发。运行整个流程拍摄一张照片可能需要15秒。
我想将含义错误消息返回给服务请求者,以告知发生故障的组件。本质上,我想报告哪个图像失败了,什么地方失败了。
将错误返回给请求者的推荐做法是什么?
解决方法
对此没有内置服务。但是,因为您已经使用PubSub进行异步调用,所以我建议也使用它来推回错误。
您可以选择2种口味
首先,为错误创建一个PubSub主题,我们说“ error_topic”
1。没有自定义消息
- 在PubSub消息中,请求者将其放在属性中(假设'requester'属性名称)
- 在消费者服务中,如果发生错误,请为推送订阅或请求订阅中的NACK返回错误代码(例如500)。
- 配置PubSub订阅以管理重试和dead letter topic(死信主题是'error_topic')
- 然后,在'error_topic'上为每个请求者创建一个订阅(使用filter capability for this),并在请求者服务中使用该消息
2。通过邮件自定义
- 在PubSub消息中,请求者将其放在属性中(假设“请求者”属性名称)
- 引发错误的消费者服务会使用自定义信息创建一条新消息,并复制“ requester”属性值,然后将其放入“ error_topic”(例如“ original_requester”属性名称)消息的属性中。 / li>
- 然后,在'error_topic'上为每个请求者创建一个订阅(使用filter capability for this),并在请求者服务中使用该消息
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。