我有一个简单的web服务,我需要大幅扩展。在
我正试图在各种web框架、负载均衡器、应用服务器(例如Mongrel2、Tornado和nginx、mod峈proxy)中决定该去哪里。在
我有一个现有的Python应用程序(当前通过BaseHTTPServer公开),它接受一些JSON数据(每个请求大约900KB),并返回一些JSON数据(大约1k)。这个处理是算法化的,用Python和一些C语言混合完成(通过Cython)。在
这已经进行了大量优化(从1小时开始,每项作业减少到1.1秒)。但我不能再乐观了。虽然我重写了一些更线程友好的东西,但我需要横向扩展(可能是ec2)。在
没有会话或状态,但应用程序的启动时间非常慢(即使是酸洗和兑现)。加载所有源数据大约需要3秒钟。一旦运行,每个请求大约需要1.1秒。我
也许我可以把一些拷贝转过来,然后反向代理它们?也许我可以在其中一个框架中创建一些有趣的工人资源库?但我仍然在未知的未知中。在
首先,您应该将web服务层与数字处理分离开来。使用外部作业队列(例如http://celeryproject.org/)卸载web前端。然后可以相互依赖地缩放每个部分。在
您应该寻找IaaS类型的云提供商(EC2、Rackspace、Linode、Softlayer等),在那里您应该能够自动添加节点(首选的方法是启动一些预配置的映像以最小化节点设置时间)。在
相关问题 更多 >
编程相关推荐