Tornado Web服务器是否适合经常调用外部Web服务的应用程序?

时间:2011-11-14 20:11:45

标签: performance scalability tornado

我正在开发一个简单的应用程序(Flex的前端的后端),在大多数情况下会执行以下操作:

  • 调用外部REST-ful Web服务
  • 从本地数据库中获取一些东西
  • 处理并返回两个结果

我的应用程序是否会受益于Tornado Web服务器是非阻塞的?我的意思是,在可扩展性和性能方面。这里的瓶颈是什么?

1 个答案:

答案 0 :(得分:0)

哦,是的。它肯定会受益。

对于服务器忙于获取外部资源的持续时间,它可以继续提供其他呼叫,因为解释器未锁定。

在普通的网络服务器中,你使用像Gevent这样的东西来实现这一点。

此外,对于Tornado 2.1及以上版本, 可以合并Step1和Step2,如下:

  

def get(self):

http_client = AsyncHTTPClient()
response1, response2 = yield [gen.Task(http_client.fetch, url1),
                              gen.Task(http_client.fetch, url2)]