Python 输出负载平衡器

Python 输出负载平衡器,python,networking,web-crawler,load-balancing,feedburner,Python,Networking,Web Crawler,Load Balancing,Feedburner,我有一个大的python线程提要检索脚本 我的问题是,如何平衡传出请求的负载,使我不经常攻击任何一台主机 这对feedburner来说是一个大问题,因为大部分网站都通过feedburner代理他们的RSS,而且为了使事情更加复杂,许多网站会将其域上的子域别名为feedburner,以掩盖他们正在使用它的事实,例如,mysite将其RSS url设置为feeds.mysite.com/mysite,feeds.mysite.com跳转到feedburner。有时它会阻止我一段时间,并重定向到他们的

我有一个大的python线程提要检索脚本

我的问题是,如何平衡传出请求的负载,使我不经常攻击任何一台主机


这对feedburner来说是一个大问题,因为大部分网站都通过feedburner代理他们的RSS,而且为了使事情更加复杂,许多网站会将其域上的子域别名为feedburner,以掩盖他们正在使用它的事实,例如,mysite将其RSS url设置为feeds.mysite.com/mysite,feeds.mysite.com跳转到feedburner。有时它会阻止我一段时间,并重定向到他们的服务器。

如果您的问题与Feedburner限制您有关,它肯定会这样做,因为您的机器人的源IP。Feedburner负载平衡的方法是从多个不同的源IP开始

现在有很多方法可以实现这一点,其中两种是:

多主机服务器:同一台机器上有多个IP 多离散机 当然,你现在不要在他们面前放一个NAT盒子-

上面讨论了调度部分可能出现的节流问题。您应该为每个目的地维护一个虚拟调度器,并确保不超过Web服务的参数,例如Feedburner。现在,棘手的部分是掌握这些限制。。。有时它们会被广告宣传,有时你需要通过实验找出它们


我知道这是一个高层次的架构指南,但我还没有准备好为您编写这个。。。我希望你原谅我-

如果您的问题与Feedburner限制您有关,它肯定会这样做,因为您的bot的源IP。Feedburner负载平衡的方法是从多个不同的源IP开始

现在有很多方法可以实现这一点,其中两种是:

多主机服务器:同一台机器上有多个IP 多离散机 当然,你现在不要在他们面前放一个NAT盒子-

上面讨论了调度部分可能出现的节流问题。您应该为每个目的地维护一个虚拟调度器,并确保不超过Web服务的参数,例如Feedburner。现在,棘手的部分是掌握这些限制。。。有时它们会被广告宣传,有时你需要通过实验找出它们

我知道这是一个高层次的架构指南,但我还没有准备好为您编写这个。。。我希望你原谅我-

如何平衡传出请求的负载,使我不会频繁访问任何一台主机

通常,您可以通过设计更好的算法来实现这一点

例如,随机扰乱您的请求

或者“公平地”洗牌,这样你就可以循环使用源代码。这将是一个简单的队列列表,您可以从每个主机中排出一个请求。

如何平衡传出请求的负载,以避免频繁命中任何一个主机

通常,您可以通过设计更好的算法来实现这一点

例如,随机扰乱您的请求


或者“公平地”洗牌,这样你就可以循环使用源代码。这将是一个简单的队列列表,您可以从每个主机中退出一个请求。

您可能应该每周/每月执行一次请求,只要合适。对于每个feed和follow重定向,获取真实地址。无论您当时的限制情况如何,您都应该能够解析所有提要,保存该数据,然后对添加到列表中的每个新提要只执行一次。您可以查看它从您输入的url返回的最终url。在ping feed时,请确保使用原始的keep-real来进行负载平衡,以确保如果用户移动了它或类似的内容,它会正确重定向

完成后,您可以简单地设计一种加载机制,例如对于给定的域,每小时只有X个请求,遍历每个提要并跳过主机已达到极限的提要。如果feedburner将其限制公开,则不太可能将其用于X,否则,您只需对其进行估计,并粗略估计其低于限制。然而,了解谷歌,他们的限制可能会衡量模式,而不是有一个具体的硬限制


编辑:从评论中添加建议。

您可能应该每周/每月执行一次请求,只要合适。对于每个feed和follow重定向,获取真实地址。无论您当时的限制情况如何,您都应该能够解析所有提要,保存该数据,然后对添加到列表中的每个新提要只执行一次。您可以查看它从您输入的url返回的最终url。在ping feed时,请确保使用原始的keep-real来进行负载平衡,以确保如果用户移动了它或类似的内容,它会正确重定向

完成后,您可以简单地设计一种加载机制,如 对于给定域,每小时只有X个请求,通过每个提要并跳过主机已达到限制的提要。如果feedburner将其限制公开,则不太可能将其用于X,否则,您只需对其进行估计,并粗略估计其低于限制。然而,了解谷歌,他们的限制可能会衡量模式,而不是有一个具体的硬限制


编辑:从评论中添加建议。

。。。如果另一端的服务受源IP限制,那么这将毫无帮助。。。。任何明智的Web服务都应该这样做。始终管理您的周界或其他…事情是我需要在dns解析点拦截urllib,以告知每个主机上的负载。。。如果另一端的服务受源IP限制,那么这将毫无帮助。。。。任何明智的Web服务都应该这样做。始终管理您的周界,否则…问题是我需要在dns解析点拦截urllib,告诉每个主机站点上的负载不要重定向到feedburner以隐藏他们正在使用它的事实,网站不会重定向到feedburner以隐藏他们正在使用它的事实,而是会这样做,以便他们保留对他们的提要URL的控制。我会将一次性更改为每天一次。人们确实会时不时地改变他们的重定向。我会把一次改为每天一次。人们确实会不时改变他们的重定向。