开发者社区> 问答> 正文

[@倚贤][¥20]高并发长依赖场景下,怎么避免close_wait异常的出现?

问题来自Java技术沙龙的王祥
Java技术沙龙报名链接:https://yq.aliyun.com/promotion/796

展开
收起
李博 bluemind 2018-12-10 19:07:23 2441 0
1 条回答
写回答
取消 提交回答
  • 首先需要了解清楚什么时候出现time_wait, 什么时候出现close_wait
    在被动关闭连接情况下,在已经接收到FIN,但是还没有发送自己的FIN的时刻,连接处于CLOSE_WAIT状态。
    通常来讲,CLOSE_WAIT状态的持续时间应该很短,正如SYN_RCVD状态。但是在一些特殊情况下,就会出现连接长时间处于CLOSE_WAIT状态的情况。

    出现大量close_wait的现象,主要原因是某种情况下对方关闭了socket链接,但是我方忙与读或者写,没有关闭连接。代码需要判断socket,一旦读到0,断开连接,read返回负,检查一下errno,如果不是AGAIN,就断开连接。

    2019-07-17 23:19:41
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
徐雷-Java为王,互联网高并发架构设计与选型之路6.0 立即下载
Redis 的高并发实战:抢购系统 立即下载
MySQL高并发场景实战 立即下载