• 阿里云河南授权服务中心--[ 阿里云精英级合作伙伴 ]
  • 阿里云河南授权服务中心电话 :0371-56982772

Connection reset 报错如何处理?
发布时间:2016-07-08 14:23

  首先了解connection rest报错的原因都有哪些?一般情况下是由下面情况引起的。
  转发协议若设置为4层TCP转发且开启了健康检查,SLB会定期的去检测后端ECS指定端口的可用性,检测流程为:
  1、SLB集群向后端ECS的指定端口进行三次握手2、握手建立后主动发送RST包断开连接在一些编程语言内,RST包会抛出异常,如Java语言,会抛出一个java.net.SocketException异常,错误信息为:Connection reset ,所以在程序这一侧看就会看到非常多的Reset异常。
  解决思路
  首先确定该异常为Connection reset,且来自SLB的集群(健康检查集群IP可参考:http://help.aliyun.com/knowledge_detail/5975216.html?spm=5176.7114037.1996646101.1.AB6G7j&pos=1),那么在程序中可以捕获该异常,同时不做任何处理。
  解决方法(以Java程序为例):
  一般来说java.net.SocketException会在read和write方法中抛出,若在read中跑出,e.printStackTrace()打印结果类似以下信息:
  若write方法抛出,则是类似以下信息:
  可以看到异常均为java.net.SocketException,错误信息中均有Connection reset字样,那么就可以在try-catch块中的catch块中加入判断是否来自SLB和异常信息是否含有Connection reset的代码:
  这样在catch块中将来自SLB健康检查导致reset的异常单独抓出来,不作任何处理,然后不属于这部分的异常再照常处理即可,这样就屏蔽了健康检查造成的reset异常。



相关资讯

  • 阿里云如何共享镜像

    阿里云如何共享镜像

    您可以把自己的自定义镜像共享给其他用户,该用户可以通过管理控制台或 ECS API 查询到其他账号共享到本账号的共享镜像列表。被共享用户可以使用其他账号共享的镜...
  • 原地扩容裸盘 (Linux)

    原地扩容裸盘 (Linux)

    如果主机之前并未划分过分区,只是使用裸盘格式化使用,那么可以使用如下方法进行原地扩容。...

售前咨询:

0371-56982772