首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jhipster是否会重试服务调用

Jhipster是否会重试服务调用
EN

Stack Overflow用户
提问于 2017-12-16 00:59:08
回答 1查看 490关注 0票数 1

我在我的网关上使用JHipster版本4.6.2。我有一个JHipster注册表和同一个微服务的两个实例。在JHipster注册表中,我可以看到网关和两个微服务实例都已正确注册。我可以进行配置,查看运行状况等。简而言之,一切都很好。

微服务是使用较新的JHipster版本(4.11.1)创建的。网关和微服务似乎都合作得很好。例如,网关上的默认(生成)用户界面能够从微服务获取数据(实体)。在网关上,我只使用Jhipster为我生成的逻辑从微服务中获取数据。我可以在日志中看到,调用被路由到两个微服务实例。

我面临的问题是,当我关闭一个微服务实例时,网关有时仍然会尝试将服务调用路由到已经关闭的微服务实例。当然,经过一段时间后,所有服务调用都会正确地路由到正确的/正在运行的微服务实例。但有时在关闭一个微服务实例之后,调用可能会被路由到“错误的”实例。

我预计,如果对第一个微服务实例的服务调用失败,像ribbon、zuul和eureka这样的组件会自动尝试其他微服务实例。我的预期正确吗?Jhipster“微服务平台”是否应该针对其他已注册的微服务实例自动重试服务调用?

如果默认情况下不支持重试,我应该怎么做才能重试?

EN

回答 1

Stack Overflow用户

发布于 2017-12-20 18:23:37

谢谢你的回复,盖尔。我尝试了从您提供的链接进行配置,但这并没有完全解决我的问题。

当设法摆脱原始异常("com.netflix.client.ClientException: null")时,我面临下一个问题(“由:com.netflix.client.ClientException引起:下一台服务器上的重试次数超过最大2次重试,同时调用: 192.168.1.4:8082")。我需要调整MaxAutoRetriesNextServer (参见https://github.com/spring-cloud/spring-cloud-netflix/issues/2052)。这让我又前进了一步,但仍然得到了hystrix异常(“原因: com.netflix.hystrix.exception.HystrixRuntimeException: myservice超时,没有可用的回退。”)。

最后,在这两个链接(https://github.com/jhipster/generator-jhipster/issues/3323https://github.com/spring-cloud/spring-cloud-netflix/issues/321)的帮助下,我成功地进行了配置,(到目前为止)在我的测试中提供了100%的可用性。

这就是对我有效的配置。我不完全了解所有这些设置背后的所有细节,所以如果你发现这些设置中有任何不一致之处,或者你有改进的建议,请提出来。谢谢!

代码语言:javascript
复制
zuul:
    routes:
        myservice:
            retryable: true
    host:
        connect-timeout-millis: 5000
        socket-timeout-millis: 20000            
ribbon:
    MaxAutoRetries: 1
    MaxAutoRetriesNextServer: 5
    OkToRetryOnAllOperations: true
    ReadTimeout: 2500
    restclient:
        enabled: true
hystrix:
    command:
        default:
            execution:
                isolation:
                    thread:
                        timeoutInMilliseconds: 20000
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47836763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档