开发者社区 问答 正文

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

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

展开
收起
李博 bluemind 2018-12-10 19:07:23 2559 分享
分享
版权
举报
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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答地址: