Java 业务开发常见错误 100 例(二)
HTTP调用:超时、重试、并发
需要考虑的三点:
- 首先,框架设置的默认超时是否合理;
- 其次,考虑到网络的不稳定,超时后的请求重试是一个不错的选择,但需要考虑服务端接口的幂等性设计是否允许我们重试;
- 最后,需要考虑框架是否会像浏览器那样限制并发连接数,以免在服务并发很大的情况下,HTTP 调用的并发数限制成为瓶颈。
超时:
- 连接超时参数 ConnectTimeout,让用户配置建连阶段的最长等待时间;
通常在毫秒级最多到秒级,不可能需要十几秒甚至几十秒,不合适配置的特别长;
- 读取超时参数 ReadTimeout,用来控制从 Socket 上读取数据的最长等待时间。
第一个误区:认为出现了读取超时,服务端的执行就会中断。
第二个误区:认为读取超时只是 Socket 网络层面的概念,是数据传输的最长耗时,故将其配置得非常短,比如 100 毫秒。
第三个误区:认为超时时间越长任务接口成功率就越高,将读取超时参数配置得太长。
Feign 和 Ribbon 配合使用,你知道怎么配置超时吗:
略,后续补上
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~