首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中的异步Web请求?

Java中的异步Web请求?
EN

Stack Overflow用户
提问于 2010-12-08 12:27:48
回答 2查看 6.5K关注 0票数 3

我正在用Java写一个简单的网络爬虫。我希望它能够下载每秒尽可能多的页面。有没有一个包可以让Java中的异步HTTP web请求变得简单?我用过HttpURLConnection,但那是阻塞的。我也知道Apache的HTTPCore NIO中有一些东西,但我正在寻找更轻量级的东西。我尝试使用这个包,在多线程上使用HttpURLConnection获得了更好的吞吐量。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-08 21:06:41

通常,只要线程数低于1000,数据密集型协议就与传统阻塞I/O相比,在原始吞吐量方面往往比NIO执行得更好。至少客户端基于Apache 1使用的HttpClient基准(可能不完美,可能有偏差)的情况肯定是这样的

只要线程数适中(<250),最好使用带有线程的阻塞HTTP客户端

如果你非常确定你想要一个基于NIO的HTTP客户端,我可以推荐Jetty HTTP客户端,我个人认为它是目前最好的异步HTTP客户端。

1

票数 6
EN

Stack Overflow用户

发布于 2010-12-08 12:40:50

虽然这个用户没有问同样的问题,但您可能会发现他的问题的答案很有用:Asynchronous HTTP Client for Java

顺便说一句,如果你打算“每秒下载尽可能多的页面”,你应该记住爬虫可能会在不经意间使脆弱的服务器停止工作。您可能应该先阅读"robots.txt“和解释此文件的适当方式,然后才能在您自己的个人测试设置之外的任何东西上释放您的创作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4384161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档