首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微服务:检测失败的服务(所有问题的根源)

微服务:检测失败的服务(所有问题的根源)
EN

Stack Overflow用户
提问于 2019-12-23 23:45:04
回答 1查看 120关注 0票数 0

我想了解如何检测失败的服务(以快速/可靠的方式),即服务是所有5xx响应的根是什么?

让我试着详细说明一下。让我们假设我们有300+微服务,它们只有通过GET请求的同步http交互,没有任何数据修改(为了简单起见,我们假设它)。每个客户请求可以转换为调用~10个不同的微服务,而且它可以是一个请求的“调用链”,即API Gateway调用3个不同的微服务,每个微服务调用1-5个以上,每个1-5个调用1-5个以上等等。

我们密切监视每个微服务上的5xx错误,并对这些错误做出反应。

现在,其中一个微服务出现故障。它似乎处于“调用链”的末尾,这意味着依赖它的其他微服务也将开始返回5xx。

是的,有断路器,是的,它们变成“触发/打开”,而不是调用下游服务,它们也立即返回错误(在大多数情况下,我们不能返回一个好的回退,如空响应)。

因此,我们可以看到相对较大的微服务返回5xx。就像30-40个微服务返回5xx一样,我们看到30-40个触发/断开断路器。

如何快速检测失败的微服务,这是所有邪恶的根源?有没有人遇到过这个问题?

问候

EN

回答 1

Stack Overflow用户

发布于 2019-12-24 14:28:39

您将需要实现一个分布式跟踪解决方案来跟踪具有全局ID的源事务处理。此全局标识符的名称通常称为关联ID,它由创建请求的第一个服务生成,并传播到共同完成请求的所有其他微服务。

看看OpenTracing,满足您的实现需求。它为您提供了一些库,用于添加在分布式环境中识别故障微服务所需的工具。

但是,如果您确实有300个微服务都使用同步calls...maybe,那么是时候考虑使用异步通信来消除同步通信中固有的时间耦合了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59457949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档