【发布时间】:2012-05-18 09:51:55
【问题描述】:
我正在做一些研究和基准测试,以便从 Http 响应中获取状态代码。
我需要使用尽可能快的方式从大量站点列表中获取响应状态代码,我不能在多个线程中运行,这将在批处理中工作,这是一个必要条件。
我创建了一个小基准服务,可以多次发送请求(避免站点缓存)并检索时间统计信息。
我正在使用不同的客户端和 API 进行测试,但响应时间不够好(最少 200 毫秒,平均:300 - 400 毫秒)。
我使用 Java URLConnection、SpringRestTemplate、ApacheHttpCommons、GoogleHttpClient 和 Restlet 进行测试。 我发现的一个问题是,在其中一些中我不能只请求 HEAD 然后检索状态 sode,所以我选择了完整的响应。
我也在考虑套接字和脚本。
任何帮助将不胜感激。
【问题讨论】:
-
为什么“在批处理中工作”意味着您不能使用多个线程?你试过 java.net.HttpURLConnection 吗?
-
对不起,我不知道批处理背后的逻辑,它是为我的公司准备的,我不在那个项目中。他们只要求我必须在没有多线程的情况下进行测试。在此之前,我在考虑线程池和多个连接。
-
那我会问他们为什么。多线程这当然是最快的方式,除非他们希望你使用 NIO,在这种情况下他们应该这么说,以及为什么。
标签: java spring http rest httpresponse