ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – Spring Boot Application – 任何其他API端点的默认超时或控制所有端点超时的简单配置

2019-07-22 09:02:35  阅读:290  来源: 互联网

标签:java rest spring spring-boot-2 microservices


我正在使用当前的Spring启动版本(1.4.x),并想知道api调用是否有任何默认超时.我通过设置断点来测试它,但它一直在等待并且没有超时.
我还试图通过使用一些注释或yml设置为我的所有spring-boot应用程序配置默认超时.

我找到了几个替代品(其中一个是here)但是使用可调用实际上添加了额外的非业务逻辑代码,其中在xml bean中设置某些东西在最新的Spring启动应用程序中已经过时了.

解决方法:

您可以在application.properties中尝试server.connection-timeout = 5000.从official documentation开始:

server.connection-timeout= # Time in milliseconds that connectors will wait for another HTTP request before closing the connection. When not set, the connector’s container-specific default will be used. Use a value of -1 to indicate no (i.e. infinite) timeout.

更新:
刚刚注意到你使用的是微服务架构,所以如果你需要在微服务之间进行通信时需要处理超时,我建议在客户端而不是服务器端处理它.如果您尝试调用的微服务过载并且其性能降低到严重影响用户体验的程度,有时最好返回一些回退数据,而不仅仅是删除请求.

想象一下,我们有一个电子商务网站,它具有微服务架构,其中一个向用户提供建议的微服务变得极其缓慢.在这种情况下,首选的解决方案是返回一些后备数据,这些数据可能是本月十大热门产品,而不是向客户显示5xx错误页面.此外,如果后续请求因超时而失败,我们可以决定避免向“推荐服务”发送请求并立即返回回退数据.一段时间后,我们可以尝试再次向“推荐服务”发送请求,如果它变得健康 – 只需使用它而不是后备数据.

这称为Circuit Breaker模式,并且已经在名为Hystrix的框架中实现了它.这是一篇很好的文章,深入解释它:http://www.baeldung.com/spring-cloud-netflix-hystrix.Spring Cloud Feign Spring Cloud Hystrix看起来非常好,特别是考虑到他们使用开箱即用的Discovery服务(例如Spring Cloud Eureka).

标签:java,rest,spring,spring-boot-2,microservices
来源: https://codeday.me/bug/20190722/1501326.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有