2016-11-04 87 views
0

我们运行JHipster微服务架构,使用consul进行服务发现。我们有一个微型服务连接到一个mongodb的docker实例。使用stock angular ui进行测试以保存新实体时,我们发现禁用数据库不会在UI中引发错误。从总领事,我可以看到,当我重新启用数据库时,该服务没有通过2次健康检查中的1次,这些检查将再次通过。当微服务失败时,JHipster不会向UI发送错误

在网关的日志,我有以下几点: Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: import

我认为领事是拒绝提供给网关服务,但它似乎应该有某种方式来配置网关如何处理请求不可用服务。任何人都可以告诉我在哪里寻找这个?

回答

1

这是正常现象。网关只会将请求路由到通过所有领事健康检查的服务。

请注意,默认情况下,Spring Boot会自动为您的数据库配置一个healtcheck。它位于您的微服务的/ management/health端点。

您可以使用微服务的spring.cloud.consul项来配置领事健康检查。我不记得具体的,但如果你使用IDEA它会自动完成可用的属性...

+0

谢谢你的回应皮埃尔。我正在尝试确定如何处理请求的服务不可用的情况。默认情况下,即使请求尚未实现,网关也会将200返回到UI。我希望发回一个回应,指出该服务不可用,但我不知道该在哪里设置。 – thejames42

+0

@ thejames42这是由Hystrix自动“打开电路”造成的,因此会响应200。这可以根据您的需求进行定制。例如,请参阅:https://www.google.fr/amp/s/jmnarloch.wordpress.com/2015/09/16/spring-cloud-zuul-error-handling/amp/?client=ms-android-oneplus –

+0

不知道如何将此标记为答案,因此标记父项。谢谢! – thejames42

相关问题