httpclient 假死问题
之前总是发现 httpclient 有假死的问题,各种超时时间都设置了,都不能解决,最近跟踪了下,发现是 dns 解析地方的超时导致,在 InetAddress.getByName 卡住
虽然Socket类有setTimeout()方法,URLConnection有setConnectTimeout()方法,但这都不能给DNS查询过程添加时间限制,也就是说,如果DNS服务器挂了,那么代码就会阻塞几十秒才能抛出异常。我最近就遇到了这个问题,当DNS服务器出问题的时候,setTimeout()设置的超时时间就不起作用了。
经过google,发现Java目前居然还没有现成的API来处理DNS查询超时的问题。不过一个老外的博客上给出了一种曲线救国的方法:
public class DNSLookupThread extends Thread {
private InetAddress addr;
private String hostname;
public DNSLookupThread(String hostname) {
this.hostname = hostname;
}
public void run() {
try {
InetAddress add = InetAddress.getByName(hostname);
set(add);
} catch (UnknownHostException e) {
}
}
private synchronized void set(InetAddress addr) {
this.addr = addr;
}
public synchronized String getIP() {
if (null != this.addr) {
return addr.getHostAddress();
}
return null;
}
}
见 http://blog.csdn.net/neosmith/article/details/43235335
httpclient 假死问题相关推荐
- Java线上问题排障:Linux内核bug引发JVM死锁导致线程假死
Java本质上还是离不开操作系统,一来Java源码是用C/C++实现的,二来java进程还是需要依附于操作系统和硬件资源,有时候一些问题是操作系统级别导致的,下面的整个事件是源自一则真实的线上案例. ...
- tomcat经常挂掉MySQL_tomcat 挂掉,假死无响应原因总结和解决方案
tomcat假死原因 以前遇到tomcat莫名奇妙的假死了,没有任何的响应,然后重启后又可以了,隔段时间又假死了.以前不懂的处理和排除原因,纠结的半死.无从入手,都想砸电脑,小伙伴们有遇到过,我遇到过 ...
- SrpingCloud服务假死分析 参数优化
背景 生产环境SpringCloud集群下,业务服务频繁卡顿.假死.心跳超时,触发自动重启机制. 版本 Eureka Server SpringCloud Hoxton.SR10 SpringBoot ...
- mfc 如何判断excel软件是否打开_教你windows如何关闭假死窗口,了解自己使用的电脑。...
在我们使用电脑的时候会经常出现电脑卡机啊不好用啊等等情况,可是自己却不知道电脑为什么会那么慢,如何让电脑快些呢?先来介绍下电脑快慢是怎么回事.在电脑硬件都正常的情况下如果电脑慢会有以下几种情况: 1. ...
- 千万别在UI线程上调用Control.Invoke和Control.BeginInvoke,因为这些是依然阻塞UI线程的,造成界面的假死...
.c# Invoke和BeginInvoke 区别 Control.Invoke 方法 (Delegate):在拥有此控件的基础窗口句柄的线程上执行指定的委托. Control.BeginInvoke ...
- C# Application.DoEvents() 处理队列消息,防界面假死。
该方法可以处理当前队列的消息,比如一个for循环 5000次 向TextBox中追加文本,那肯定会假死一会儿的. 此时便可使用Application.DoEvents()来处理队列的信息. 简单说下使 ...
- 启动一个java项目http状态 500 - 内部服务器错误_Java web服务器假死分析
问题现象: 服务端端口开着,客户端可以telnet 服务器上的端口,但访问服务时没有任何返回. 服务器环境 :Java 8 + linux CentOS release 6.5. 用apache ab ...
- 一种在网络层清理机器假死时TCP连接的方案介绍
一.背景 假如应用服务器A上有若干模块连接某数据库服务机器B,当B异常假死,需要将B的请求切换到备份系统,这样已经建立的连接就遗留了下来.如果A上hang住的连接占用的服务线程较多,就可能造成业务系统 ...
- java启动子线程过多导致卡死_java线程基础巩固---多Product多Consumer之间的通讯导致出现程序假死的原因分析...
在上一次中已经实现一个生产者与消费者的初步模型(http://www.cnblogs.com/webor2006/p/8413286.html),但是当时只是一个生产者对应一个消费者,先贴下代码: p ...
- 转:优化js脚本设计,防止浏览器假死
原链接打不开了,复制一份保存: 在Web开发的时候经常会遇到浏览器不响应事件进入假死状态,甚至弹出"脚本运行时间过长"的提示框,如果出现这种情况说明你的脚本已经失控了,必须进行优化 ...
最新文章
- 心得体悟帖---回避型人格
- Android-静态代理模式
- SVN中 “containing working copy admin area is missin
- 计算机硬件市场调查实验报告,计算机组装与维护实训报告范例.doc
- linux常用命令(用户篇)
- 学计算机的如何学英语,怎么在电脑上学习英语
- php数组在golang,go语言数据类型-数组(array)
- mysql性能优化的最佳20条经验_MySQL性能优化的最佳20+条经验
- java writedouble_java-将double转换为32位表示形式(以及相反的...
- Luogu P2595 [ZJOI2009]多米诺骨牌 容斥,枚举,插头dp,轮廓线dp
- linux:云端 ubuntu下挂载数据盘
- 更新ati显卡bios
- 回溯算法-八皇后问题
- oracle count 1 count 区别,Count(1)和count(*)区别
- microchip-02之MCC工具安装
- ASP.NET+Sql Server 2008 +highchart控件从数据库中获取数据生成饼状图柱状图
- 分糖果系列一(DP+暴力)
- dojo和ArcGIS
- Matlab实现蒙特卡罗方法(随机模拟法)
- 中国移动:4G流量不清零,可分享
热门文章
- 树莓派4B安装WPS步骤及缺失字体问题
- java wps linux 安装_安装wps for linux无法启动
- dos命令中DATE:~0,10输出日期格式名称格式/改为-
- Premiere 常用视频概念
- 2020-12-29 G003-186-16
- Linux命令注销电脑,Linux基本命令-注销、关机、重启
- linux 实验感悟_linux实验心得
- 微信推送封面尺寸_微信公众号封面图、正文配图尺寸如何?如何选择、制作?...
- mysql查询各科成绩前三名_No.03 数据库经典面试之如何取出每科成绩的前三名
- Joint Discriminative and Generative Learning for Person Re-identification论文翻译