鉴于来自流的一系列URL,数百万可能是bit.ly,google或tinyurl缩短链接,解决这些问题以获得最终网址的最具扩展性的方法是什么?
多线程爬虫在每个短链接上执行HEAD请求,同时缓存您已经解决的那些?有没有提供此服务的服务?
也是因为没有阻止网址缩短服务.假设规模是每天2000万缩短的网址.
Google 提供了一个API.bit.ly也是如此(并且bit.ly要求通知大量使用,并指明它们对光的使用意味着什么).我不知道tinyurl(用于解码)的适当API,但可能有一个.
然后,您必须获取每秒230个URL的顺序,以跟上您所需的费率.我将测量每个服务的典型延迟,并根据需要创建一个主actor和多个worker actor,这样actor就可以阻止查找.(我会使用Akka,而不是默认的Scala actor,并确保每个worker actor都有自己的线程!)
你也应该在本地缓存答案; 查找已知答案比查询这些服务要快得多.(主演员应该照顾好.)
在那之后,如果你仍然因为网站的限制而无法跟上,你最好还是与网站交谈,或者你必须做一些相当可疑的事情(租用一堆廉价的服务器)不同的站点并向他们提出请求).