如何才能最好地将域的一部分 URI 从一台服务器卸载到另一台服务器?

如何才能最好地将域的一部分 URI 从一台服务器卸载到另一台服务器?

抱歉,我对这个概念还很陌生。基本上,我有一个 Django 网站。其中一个视图执行了大量工作,并导致服务器因内存不足而挂断。我想利用该视图的功能,让它在另一台服务器(服务器 B)上运行,并让主服务器(服务器 A)与它通信,就像它们都在同一台服务器上运行一样。我的第一个猜测是,我需要让服务器 B 监听服务器 A 可以与之通信的端口,反之亦然。

我并不要求明确的答案,因为这个问题本身可能很模糊。也许,我可以通过负载平衡等更好地实现这一点,我不确定。任何指向有关如何实现我想要的信息的链接都将不胜感激。谢谢

答案1

我可能会寻求某种消息传递基础设施来解决这个问题。服务器 A 可以处理前端请求,服务器 B 可以生成数据。

服务器 A 在队列中“监听”服务器 B 生成的数据。您还应该尝试缓存请求和生成的数据,这样您就不会为多个类似的请求重新生成相同的数据。

服务器B监听从服务器A上的视图转发的请求,处理数据并通过响应队列返回生成的数据。

嗯。要读的东西……

http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/<- 有关 RabbitMQ 和 python 的优秀文章。

http://docs.djangoproject.com/en/1.2/topics/cache/<- Django 视图缓存。这将极大地帮助您降低负载(特别是如果您使用 memcached 而不是基于磁盘的缓存,那么您也会获得分布式缓存。)

http://oreilly.com/catalog/9780596102357<-“构建可扩展的网站”将让您深入了解一些使您的 web 应用程序可扩展的其他方法。

答案2

我建议研究一下 Apache mod_proxy 的常见用途。

另外,沿着同样的路径,您可能会对诸如 Varnish 之类的缓存功能感兴趣。

认真思考如何将应用程序分解为功能单元(如果尚未这样做),并减少总工作量。你可以缓存吗?如果可以,去做。 :)

相关内容