当前位置: 首页 > news >正文

WebClient工具调用HTTP接口报错远程主机断开连接

WebClient工具调用HTTP接口报错远程主机断开连接

  • 现象
  • 原因
  • 解决

现象

使用WebClient工具发送http请求,调用其他模块服务时,控制台报错远程主机断开连接(出现在,短时间内发送多次http请求,比如:一个接口内连续调用多次/for循环内调用多次发送http请求)

原因

运维同事抓包发现,是发送http请求时与对应服务建立了一个连接(我这边和服务器都没有对这个连接进行处理断开),WebClient第二次请求时,还是用了上一次的连接,这个时候对应服务模块断开了连接,也就表现为快速请求多次,第二次请求会出现“远程主机断开连接”

解决

请求的模块不支持长连接,那就将工具配置为短连接。
(http Client和web Client等工具都是默认的长连接,且比较合理的方式也应该是长连接+连接池)
全局配置webClient工具

@Configuration
public class WebClientConfig {@Beanpublic WebClient webClient(WebClient.Builder builder) {// 创建短连接配置,ConnectionProvider.newConnection()创建新连接HttpClient httpClient = HttpClient.create(ConnectionProvider.newConnection())// 禁用TCP keep-alive,使用短连接.option(io.netty.channel.ChannelOption.SO_KEEPALIVE, false)// 设置连接超时时间.option(io.netty.channel.ChannelOption.CONNECT_TIMEOUT_MILLIS, 5000)// 设置响应超时时间.responseTimeout(Duration.ofSeconds(30))// 设置读写超时处理器.doOnConnected(conn -> conn.addHandlerLast(new io.netty.handler.timeout.ReadTimeoutHandler(30)).addHandlerLast(new io.netty.handler.timeout.WriteTimeoutHandler(30)));// 配置WebClient使用短连接HttpClientreturn builder.clientConnector(new ReactorClientHttpConnector(httpClient)).build();}
}
http://www.dtcms.com/a/457452.html

相关文章:

  • 【C语言基础详细版】09. 文件操作完全指南:从基础到高级应用
  • 卡盟网站专用主机批量建wordpress
  • Java高并发常见架构、处理方式、api调优
  • 基于 Delphi 与 ICS 的 Mosquitto Broker 重构实现:架构创新与技术比较分析
  • rag的评估优化应用前景
  • 1.2 openEuler - 安装OpenStack云计算平台基础框架
  • wordpress值得买模板百度智能小程序怎么优化排名
  • 徐州网站建设咨询2022年国际十大新闻
  • 中山精品网站建设机构wordpress目录列表
  • 智能体大模型基础入门(RAG难点图片详细讲解)
  • php网站数据迁移建网站自己做服务器
  • 河源盛世网站建设福州市城乡建设发展总公司网站
  • 嵌入式 Linux 启动优化:从 8 秒到 3 秒的极致加速
  • 网站建设 手机app网站建设书籍 知乎
  • 函数映射在不等式中的作用
  • JavaScript 事件流:事件捕获和事件冒泡
  • 数据湖架构
  • 对网站有效的优化软件长沙网站托管
  • 网站用户 分析宁波网站建设联系电话查询
  • Docker 镜像结构
  • RAG 让你的 AI 更聪明
  • 软测面经(二)
  • 微信小程序入门学习教程,从入门到精通,微信小程序核心组件详解与使用方法(12)
  • redis的集群中的简单问题
  • 托福阅读+听力【2】
  • 技术与情感交织的一生 (十四)
  • Linux 高手进阶:Vim 核心模式与分屏操作详解
  • 计组2.2.0——逻辑门电路,多路选择器,三态门
  • intellij 网站开发公司网页制作哪家比较好
  • 基于GD32的RT-Thread移植(邪修版)