微服务是否应该在向其他微服务提出请求之前调用健康检查?

问题描述 投票:0回答:3

想象一下,我有微服务A和微服务B.微服务A需要向微服务B发出HTTP请求。它应该在执行该请求之前调用微服务B的健康检查端点,并且只有在健康状况检查恢复正常时才进行吗?

microservices health-monitoring
3个回答
3
投票

答:没有

使用断路器模式,您可以使用首选语言查找api,并可以定义回调解决方案。

断路器是现代软件开发中使用的设计模式。它用于检测故障并封装防止故障在维护,临时外部系统故障或意外系统故障(wiki)期间不断重复发生的逻辑。

服务客户端应该通过代理来调用远程服务,该代理以与电路断路器类似的方式起作用。当连续故障的数量超过阈值时,断路器跳闸,并且在超时时间段内,所有调用远程服务的尝试都将立即失败。超时到期后,断路器允许有限数量的测试请求通过。如果这些请求成功,则断路器恢复正常操作。否则,如果失败,则超时时段再次开始。


0
投票

依赖运行状况检查的问题是,在成功运行状况检查和调用微服务之间,服务可能会降级。无论运行状况检查结果如何,您的代码都应该处理失败。


0
投票

我建议使用像resilience4j这样的库,具体取决于您使用的语言。它的CircuitBreaker / Bulkheads / Retries应该实现你所追求的目标。如果有负载均衡器或任何其他基础设施(如K8),我会留下检查健康检查(准备和生命线 - 探测)。

© www.soinside.com 2019 - 2024. All rights reserved.