Tomcat7 & Struts1 - 处理大量 Google Bot 点击

Posted

技术标签:

【中文标题】Tomcat7 & Struts1 - 处理大量 Google Bot 点击【英文标题】:Tomcat7 & Struts1 - handling multitude of Google Bot hits 【发布时间】:2011-08-20 07:09:56 【问题描述】:

我的一台服务器上超过一半的点击来自 Google Bot,它不断地爬取我们数百万的网页。

我们有这么多页面的原因是该公司是一家汽车零部件商店,对于制造商零件编号及其适合的车辆的每种组合都有唯一的 URL。这不是我们可以摆脱的;人们一直在搜索这些字词,我们需要为每个字词提供唯一的着陆页(因为我们所有的竞争对手都有,当然!)。

因此,我们有数百万个网页需要 Google 了解。这意味着我们每秒从他们的爬虫中获得数次点击,全天候,这是与任何最终用户流量一样重要和必要的流量。

由于我们不断向目录中添加新产品,每周大约有数十万个,我们的唯一 URL 列表越来越长,流量也在稳步增长。

Google bot 不会关注 cookie,这意味着它每次都会获得一个新会话,因此这会将我们的内存使用量增加到分配的最大值。

其他使用 Tomcat7 和 Struts 的人如何处理如此巨大的自动化流量?

我计划尝试的方法是在每个请求结束时在页脚 JSP 磁贴中使会话无效(当且仅当用户代理字符串是 Google 爬虫时)。这是节省内存的有效技术吗?

还有哪些其他策略可以帮助我们更有效地处理机器人流量?

【问题讨论】:

【参考方案1】:

我并不完全在这个领域,但你有没有试过看看: http://www.robotstxt.org/

我想这是 google 应该遵守的标准。

【讨论】:

问题不是如何限制爬虫,而是如何让服务器更高效地处理请求。 它可以帮助减少来自机器人的调用频率,比如每秒一次(或更少)可能是正确的权衡 我认为问题不在于请求量,而是每个请求都会产生一个新会话这一事实。 OP 有数百万页要抓取,每周还有数十万页。 正确 - 我们希望 google 爬虫攻击我们,因为列出这些页面对于这项业务来说非常重要。我只是在寻找更有效地处理此类命中的策略;立即放弃会话是我打算追求的一种方法,并且想知道它的效果如何,还有什么有效的方法。

以上是关于Tomcat7 & Struts1 - 处理大量 Google Bot 点击的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat7.0源码分析——请求原理分析(上)

struts1 & jquery form 文件异步上传

struts1 & jquery form 文件异步上传

[漏洞复现] [Vulhub靶机] Tomcat7+ 弱口令 && 后台getshell漏洞

Spring异步功能

s2-048远程代码执行漏洞