登录
首页 >  Golang >  Go问答

即使 pod 崩溃,envoy代理依然正常响应

来源:stackoverflow

时间:2024-02-08 09:45:22 391浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《即使 pod 崩溃,envoy代理依然正常响应》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

我的 2 个微服务正在通过 GRPC 相互通信,并且我正在使用 envoy 代理。 微服务 A 正在调用微服务 B,并且 Envoy 容器位于微服务 A 的 pod 内。

我的问题是,如果由于任何问题微服务 B pod 崩溃,我在 A 处不会收到任何错误,它只是不断尝试建立连接。

我的期望是,由于 B pod 崩溃,envoy 代理应该立即给出一些无法连接的错误或其他错误,因为它知道由于没有可用的 pod,因此无法连接。

我在 A 处有一个标准连接超时,但我希望 Envoy 在这种情况下快速失败。

B 端无能为力,因为它已经崩溃,并且 A 依赖于 envoy 代理。


正确答案


为了了解微服务 B 在 Envoy 中失败时的状态或错误,Envoy Proxy 有一个名为 Envoy Circuit Breaking. 的功能,该功能会停止向 pod B 发送请求,因为它遇到了问题并且无法回应。请参考 Christian Posta 的这篇文章 blog,他已经通过演示清楚地解释了 Envoy Proxy 的熔断及其配置。

Envoy 代理断路适用于微服务,而为了了解 Pod 级别崩溃及其警报,我们需要使用 Prometheus。 Prometheus 非常适合微服务,因为您只需要公开指标端口,不需要增加太多复杂性或运行额外的服务。您可以在 Pod 中找到 Pod 崩溃和 Pod 不健康 here 的模板,并进行相应配置,当 Pod 崩溃或 Pod 不健康时,它们会向您发出警报。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《即使 pod 崩溃,envoy代理依然正常响应》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>