AWS和Python线程可伸缩性
我有一个在本地服务器上运行的服务,使用library编写。把它想象成一种网络爬虫。它使用50个线程。我想在云上部署它并扩大它的规模,这样它就可以使用更多的线程 简单地说,我有两个:AWS和Python线程可伸缩性,python,multithreading,amazon-web-services,Python,Multithreading,Amazon Web Services,我有一个在本地服务器上运行的服务,使用library编写。把它想象成一种网络爬虫。它使用50个线程。我想在云上部署它并扩大它的规模,这样它就可以使用更多的线程 简单地说,我有两个:Qinput带有URL和Qoutput带有页面内容。线程从Qinput中选取URL,获取网页内容并将其放入Qoutput 问:我只是简单地将线程数量增加到500、5000或50000,AWS+Python就能处理它,这就足够了吗?在AWS上移植多线程服务时,我是否应该期望该服务无缝运行,或者应该注意一些“标准”设计陷阱
Qinput
带有URL和Qoutput
带有页面内容。线程从Qinput
中选取URL,获取网页内容并将其放入Qoutput
问:我只是简单地将线程数量增加到500、5000或50000,AWS+Python就能处理它,这就足够了吗?在AWS上移植多线程服务时,我是否应该期望该服务无缝运行,或者应该注意一些“标准”设计陷阱
我知道,虽然这在这里不应该是一个问题,因为线程的主要任务是在抓取/抓取页面时在解释器外部调用。您可能能够在您的实例中生成大量线程,尤其是在您需要的情况下。但是额外线程的回报会减少,直到它不再帮助您获得更高的性能 但是,如果希望系统的扩展超出单个实例的限制,则最好能够在多个实例上运行系统。那么你的决定只是操作性的,而不是技术性的。我认为,如果您是在AWS环境中运行的,它允许您使用几乎无穷无尽的操作资源,那么您应该考虑它
您还可以签出,这基本上是一个分布式队列系统。它将允许您根据需要同步任意多个实例的工作。任何单个实例都有其限制。您可能能够在您的实例中生成大量线程,尤其是在您需要的情况下。但是额外线程的回报会减少,直到它不再帮助您获得更高的性能 但是,如果希望系统的扩展超出单个实例的限制,则最好能够在多个实例上运行系统。那么你的决定只是操作性的,而不是技术性的。我认为,如果您是在AWS环境中运行的,它允许您使用几乎无穷无尽的操作资源,那么您应该考虑它 您还可以签出,这基本上是一个分布式队列系统。它将允许您根据需要同步多个实例的工作。您可以看到我理解的线程增加与性能没有直接关系的内容和方式。您可以看到我理解的线程增加与性能没有直接关系的内容和方式。