问题描述
我正在使用 java 在 Spring Boot 中研究微服务架构,需要以下场景的帮助:
如何在 Spring Boot 中实现 - 如果微服务 A 不健康,那么负载均衡器如何使用断路器向健康的微服务 B 或 C 发送请求。
我是微服务架构的新手,请帮我解决这个问题,或者请分享我可以参考的任何文档以更好地理解。
如果有人有任何其他方式来实现这一目标,欢迎提出建议和意见!
提前致谢。
解决方法
不确定我是否理解正确。
您的服务可以由协调器(例如 Kubernetes)监控,以了解健康/不健康的实例。它调用服务的特殊端点(例如 spring-boot-actuator -> /actuator/health)。如果两个实例中的一个不健康,而 Kubernetes 应该提供其中的两个,它将销毁不健康的实例并创建一个新的实例。
作为产品的一部分,LoadBalancer 本身带有各种算法来确定哪个实例获取客户端请求(例如最少连接、最少响应时间、循环和 IP 哈希)。您的工作是将应用程序的实例添加到 LoadBalancer(取决于您的环境)。
断路器位于您的应用程序中,用于处理您的服务和您正在使用的远程服务之间的通信故障。 LoadBalancer 也可以使用这种模式,但如前所述,这取决于他们。
,你应该在 eureka 服务器上使用 zuul 代理 check this