Architecture 微服务中的监控:如何检测微服务体系结构中的内部/外部服务是否停止

Architecture 微服务中的监控:如何检测微服务体系结构中的内部/外部服务是否停止,architecture,microservices,spring-cloud,istio,spring-cloud-gateway,Architecture,Microservices,Spring Cloud,Istio,Spring Cloud Gateway,在微服务体系结构中,我希望在服务停止时根据阈值检测并生成警报。我想为每个客户端微服务使用断路器,以便在电路切换时发送信息,并创建与目标“关闭”状态相关的警报。但我不知道这是不是一个好的模式。此外,我还有两个顾虑,第一个是监控微服务并聚合它们的数据以在达到阈值时生成警报,第二个是对网关使用的微服务所使用的第三方服务(外部服务)执行相同的操作。根据你的说法,监控微服务的最佳方式是什么?谢谢当您需要允许故障服务恢复时,应该使用断路器,而不是不断地用请求来攻击它,尽管它无法为它们提供服务。这是一篇很好的

在微服务体系结构中,我希望在服务停止时根据阈值检测并生成警报。我想为每个客户端微服务使用断路器,以便在电路切换时发送信息,并创建与目标“关闭”状态相关的警报。但我不知道这是不是一个好的模式。此外,我还有两个顾虑,第一个是监控微服务并聚合它们的数据以在达到阈值时生成警报,第二个是对网关使用的微服务所使用的第三方服务(外部服务)执行相同的操作。根据你的说法,监控微服务的最佳方式是什么?谢谢

当您需要允许故障服务恢复时,应该使用断路器,而不是不断地用请求来攻击它,尽管它无法为它们提供服务。这是一篇很好的文章,您可以查看有关如何使用此模式的更多详细信息

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

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

如果你使用库伯内特斯,你可以用普罗米修斯监控微服务。这是一篇很好的文章,可以让你开始。普罗米修斯删除了库伯内特斯API,并公开了与豆荚相关的指标。您可以基于这些信息创建警报


为了监控外部服务,您也可以使用Prometheus。如果外部服务能够通过Prometheus公开度量,那么您只需插入它,就完成了。否则,您必须编写一些代码来检查该服务的运行状况,并在此基础上公开一个度量。

谢谢。关于内部服务,我确实认为使用普罗米修斯是个好主意。所以,关于外部服务,因为它不在我的控制范围内,我想使用网关中的断路器来检测发送到外部网络的失败请求,就像某些负载平衡器中的情况一样,但这是可能的吗?这是一种良好的做法吗?是的,对于外部服务,您可以使用断路器确保它们能够及时恢复。我不确定负载平衡器是否能够做到这一点。我想说的是,最佳实践是在应用程序内部使用断路器。这样,您就可以监视它,并获得更大的灵活性