【问题标题】:JHipster not throwing errors to UI when microservice fails当微服务失败时,JHipster 不会向 UI 抛出错误
【发布时间】:2017-03-18 15:54:06
【问题描述】:

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

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

我假设领事拒绝让网关可以使用该服务,但似乎应该有一些方法来配置网关如何处理对不可用服务的请求。谁能告诉我在哪里可以找到这个?

【问题讨论】:

    标签: mongodb jhipster microservices consul


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回复皮埃尔。我正在尝试确定如何处理请求的服务不可用的情况。默认情况下,即使请求尚未完成,网关也会将 200 发送回 UI。我更愿意发回一个响应,说明该服务不可用,但我不知道在哪里设置。
    • @thejames42 这是由 Hystrix 引起的,它会自动“打开电路”因此以 200 响应。这可以定制以满足您的需求。例如:google.fr/amp/s/jmnarloch.wordpress.com/2015/09/16/…
    • 不确定如何将其标记为答案,因此标记父级。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-11-25
    • 2018-04-24
    • 2017-07-12
    • 2023-04-07
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多