彻底掌握网络通信(六)HttpRequestRetryHandler解析 偏执的太偏执、 2024-04-18 17:52 30阅读 0赞 在进行批量插入到clickhouse数据库的时候,出现了这种问题: 21:28:02.022 [pool-5-thread-9] INFO o.a.http.impl.execchain.RetryExec - I/O exception (java.net.SocketException) caught when processing request to {}->http://35.26.59.191:8123: Broken pipe (Write failed) 21:28:02.029 [pool-5-thread-9] INFO o.a.http.impl.execchain.RetryExec - Retrying request to {}->http://35.26.59.191:8123 原先是:断开的管道 18:34:50.032 [pool-11-thread-10] INFO o.a.http.impl.execchain.RetryExec - I/O exception (java.net.SocketException) caught when processing request to {}->http://35.26.59.191:8123: >断开的管道 18:34:50.033 [pool-11-thread-10] INFO o.a.http.impl.execchain.RetryExec - Retrying request to {}->http://35.26.59.191:8123 我还以为是连接时长过短的原因:(但是并没有用) clickhouse.socketTimeout=6000000 后面查阅了相关资料才发现,HttpClient有默认的重试策略。 对于我们的场景应用中的get与post,可以总结为: 只有发生IOExecetion时才会发生重试 InterruptedIOException、UnknownHostException、ConnectException、SSLException,发生这4中异常不重试 get方法可以重试3次,post方法在socket对应的输出流没有被write并flush成功时可以重试3次。 首先分析下不重试的异常: InterruptedIOException,线程中断异常 UnknownHostException,找不到对应host ConnectException,找到了host但是建立连接失败。 SSLException,https认证异常 另外,我们还经常会提到两种超时,连接超时与读超时: java.net.SocketTimeoutException: Read timed out java.net.SocketTimeoutException: connect timed out 这两种超时都是SocketTimeoutException,继承自InterruptedIOException,属于上面的第1种线程中断异常,不会进行重试。 **由于SocketException extends IOException,所以会尝试重试** **总结** 1.只有发生IOExecetion时才会发生重试 2.InterruptedIOException、UnknownHostException、ConnectException、SSLException,发生这4中异常不重试 3.get方法可以重试3次,post方法在socket对应的输出流没有被write并flush成功时可以重试3次。 4.读/写超时不进行重试 5.socket传输中被重置或关闭会进行重试 6.以及一些其他的IOException,暂时分析不出来。 参考:[https://blog.csdn.net/weixin\_34128534/article/details/86807209][https_blog.csdn.net_weixin_34128534_article_details_86807209] 转载于:https://my.oschina.net/u/4131327/blog/3082287 [https_blog.csdn.net_weixin_34128534_article_details_86807209]: https://blog.csdn.net/weixin_34128534/article/details/86807209
相关 网络编程:TCP/UDP通信问题解析 在计算机科学中,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种主要的互联网通信协议。 1. 我不是女神ヾ/ 2024年09月19日 17:39/ 0 赞/ 1 阅读
相关 Java网络编程socket通信问题案例解析 在Java的网络编程中,Socket是一种主要的通信工具。以下是一些关于Socket通信问题以及案例解析: 1. **连接问题**: - 案例:客户端无法与服务器建立连 浅浅的花香味﹌/ 2024年09月19日 01:27/ 0 赞/ 5 阅读
相关 Java网络编程:Socket通信问题解析 在Java的网络编程中,Socket是一种主要的通信工具。以下是一些常见的Socket通信问题及解析: 1. **连接失败**:这可能是由于服务器地址错误、端口异常或服务器已 r囧r小猫/ 2024年09月10日 07:18/ 0 赞/ 21 阅读
相关 彻底掌握网络通信(六)HttpRequestRetryHandler解析 进行批量插入到clickhouse数据库的时候,出现了这种问题: 21:28:02.022 [pool-5-thread-9] INFO o.a.http.i... 偏执的太偏执、/ 2024年04月18日 17:52/ 0 赞/ 31 阅读
相关 由浅入深Dubbo网络通信深入解析 目录 1 dubbo中数据格式 2 消费方发送请求 3 提供方接收请求 4 提供方返回调用结果 5 消费方接收调用结果 6 异步转同步 浅浅的花香味﹌/ 2024年03月17日 10:19/ 0 赞/ 13 阅读
相关 六、android的xml解析 除了可以使用 SAX和DOM解析XML文件,大家也可以使用Android内置的Pull解析器解析XML文件。Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事 谁践踏了优雅/ 2022年10月14日 13:59/ 0 赞/ 138 阅读
相关 六、Dockerfile 解析 目录 一、什么是Dockerfile 二、Dockerfile文件说明 1、FROM 2、MAINTAINER 3、RUN 4、EXPOSE 5、WORKDIR 朴灿烈づ我的快乐病毒、/ 2021年11月11日 07:01/ 0 赞/ 273 阅读
相关 BP神经网络解析 > 第一次接触BP神经网络是在模式分类的课上,第二次接触是在Stanford的机器学习课上。接触多次,但都没有具体把它应用到研究中去。这次要做学术报告,打算试验一下它在分类识别 曾经终败给现在/ 2021年11月04日 11:36/ 0 赞/ 520 阅读
相关 网络编程:域名解析 【举例】 www.haha.com想要将主机名翻译成IP地址,需要域名解析服务器DNS。 【图例】 ![watermark_type_ZmFuZ3poZW5naG 怼烎@/ 2021年10月01日 03:50/ 0 赞/ 268 阅读
还没有评论,来说两句吧...