首页 > 解决方案 > 微服务中的监控:如何在微服务架构中检测内部/外部服务是否出现故障

问题描述

在微服务架构中,我想在服务出现故障时根据阈值检测并生成警报。我想为每个客户端微服务使用断路器以在电路切换时发送信息并创建与目标状态“关闭”相关的警报。但如果这是一个好的模式,我不会。此外,我有两个问题,第一个是监控微服务并聚合它们的数据以在达到阈值时生成警报,第二个是对网关使用的微服务使用的第三方服务(外部服务)做同样的事情. 根据您的说法,监控微服务的最佳方式是什么?谢谢

标签: architecturemicroservicesspring-cloudistiospring-cloud-gateway

解决方案


当您需要允许失败的服务恢复时,应该使用断路器,而不是不断地用请求打击它,尽管它不能为它们服务。是一篇不错的文章,您可以查看有关如何使用此模式的更多详细信息。

因此,如果您的服务可能会在短时间内恢复,您可以使用断路器。

否则,我认为这里就是这种情况(因为您希望在服务关闭时触发警报),我将更多地关注该微服务失败的原因,并且我会尽量减少发生的机会。

如果你使用 Kubernetes,你可以使用 Prometheus 监控微服务。是一篇不错的文章,可以帮助您入门。Prometheus 抓取 Kubernetes API 并公开与 pod 相关的指标。您可以根据这些创建警报。

要监控外部服务,您也可以使用 Prometheus。如果外部服务能够通过 Prometheus 公开指标,那么您只需将其插入即可。否则,您必须编写一些代码来检查该服务的运行状况并基于此公开一个指标。


推荐阅读