[
https://issues.apache.org/jira/browse/NUTCH-1941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14381679#comment-14381679
]
Sebastian Nagel commented on NUTCH-1941:
----------------------------------------
Solution 2 is simpler because it does not save any state. If there is no good
argument in favor of solution 1, I would opt for solution 2 because of
simplicity and statelessness. There a multiple ways to make solution 1
thread-safe: synchronization, volatile variables, atomic integers, ...
Are there arguments against solution 2:
- "won't it be too predictable": the agent name is chosen randomly. It's
predictable if you now the pseudo-random generator and it's seed. But there are
many other things easier to detect, esp. the access within fixed intervals
(fetcher.server.delay).
- "have to rotate the agent every time": it's not strictly speaking a
"rotation", just random selection of one agent name.
> Optional rolling http.agent.name's
> ----------------------------------
>
> Key: NUTCH-1941
> URL: https://issues.apache.org/jira/browse/NUTCH-1941
> Project: Nutch
> Issue Type: New Feature
> Components: fetcher, protocol
> Reporter: Lewis John McGibbney
> Priority: Trivial
> Attachments: NUTCH-1941-ITR2.patch, NUTCH-1941-itr3.patch,
> NUTCH-1941-ver1.patch, agent.names.txt, nutch.patch
>
>
> In some scenarios, even whilst adhering to fetcher.crawl.delay, web admins
> can block your fetcher based merely on your crawler name.
> I propose the ability to implement rolling http.agent.name's which could be
> substituted every 5 seconds for example. This would mean that successive
> requests to the same domain would be sent with different http.agent.name.
> This behavior should be off by default.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)