2012-04-20 48 views
2

我刚开始关注龙卷风和异步Web服务器。在龙卷风的例子很多,不再请求被类似处理:龙卷风/异步网络服务器理论,如何处理长时间运行的操作以利用异步服务器

  1. 拨打电话龙卷风网络服务器
  2. 龙卷风使异步网络调用的API
  3. 让龙卷风继续服用请求,同时回调百废待兴称为
  4. 在回调中处理响应。服务器到用户。

因此,对于假设的目的说,用户正在向龙卷风服务器请求/retrive/retrieve将向内部api myapi.com/retrieve_posts_for_user_id/或w/e发出请求。在获取请求时,api请求可能需要一秒钟的时间才能运行,然后当最终将响应返回给龙卷风服务器时。 首先是这种流程使用龙卷风的“正常”方式?许多在线代码示例都会提示。其次,(这是我的头脑开始变得难以理解的地方)假设上述流程是标准流程,myapi.com应该是异步的吗?如果它不是异步的,并且请求可能需要几秒钟的时间,它不会创建阻塞服务器的相同瓶颈?也许龙卷风或任何异步的正常用例的例子将有助于澄清这个问题?谢谢。

回答

2

是的,据我了解你的问题,这是一个正常的龙卷风用例。

如果所有请求到您的龙卷风服务器将请求myapi.commyapi.com阻塞,那么是的,myapi.com仍然是瓶颈。然而,如果只有一些请求必须由myapi.com来处理,那么Tornado仍然是一个胜利,因为它可以在等待对myapi.com的请求的响应时继续处理这样的请求。但无论如何,如果myapi.com无法处理负载,那么将Tornado服务器放在它前面并不会奇迹般地解决这个问题。不同之处在于即使myapi.com处于繁忙状态,您的Tornado服务器仍能够响应请求。