处理大量Http请求的最有效方法

时间:2013-03-07 01:11:14

标签: java database multithreading networking httprequest

我有一个相当直接的问题,我将要做很多HTTP请求来获取XML有效负载,我需要解析有效负载并对数据库进行一些更改。

我会经常做这些请求,所以任何优化都会很好。

我想知道是否有更有效的方式来执行请求,因为这将花费大量时间。我用Java编写这个,我使用SAXParser解析XML负载以获取我需要的数据。我正在使用HttpURLConnection类进行Http请求,我只是运行一个同步的线程并等待每个请求。我试过同时运行请求,我遇到了一些问题。我将要执行此操作的计算机非常强大,因此我不会遇到内存或处理问题。所以我的问题是:

  1. 获取XML有效负载的哈希值并将其存储在数据库中或解析XML并手动检查数据会更有效吗?
  2. 是否有比HttpURLConnection更高效的HttpRequests库?
  3. 可以通过线程化请求进行任何优化吗?
  4. 感谢任何见解。

1 个答案:

答案 0 :(得分:2)

  

获取XML有效负载和存储的哈希是否更有效   它在DB中还是解析XML并手动检查数据?

计算XML有效负载的哈希几乎肯定比解析它更快。这是检测您是否已经拥有不需要重新解析的有效负载的好方法。

  

是否有比HttpRequests更高效的库   HttpURLConnection的?

当然,请使用Apache HttpComponents。有几种方法可以调整性能,如this legacy but still relevant document中所强调的那样。

  

可以通过线程化请求进行任何优化吗?

与线程相关的所有内容一样,这取决于几个因素,包括硬件配置(尤其是网络硬件)。从理论上讲,你应该从多线程中获得一些的好处。我不会把它作为调优的首要任务。