2

我刚刚开始研究 Tornado 和异步 Web 服务器。在龙卷风的许多示例中,较长的请求由以下内容处理:

  1. 调用 tornado 网络服务器
  2. tornado 对 api 进行异步网络调用
  3. 在回调等待被调用时让龙卷风继续接受请求
  4. 在回调中处理响应。服务器到用户。

因此,出于假设目的,假设用户正在向 tornado 服务器发出请求/retrive/retrieve将向内部 apimyapi.com/retrieve_posts_for_user_id/或 w/e 发出请求。api 请求在获取请求时可能需要一秒钟的时间来运行,然后当它最终返回 tornado 服务器时响应。 首先,这种流动是使用龙卷风的“正常”方式吗?网上的许多代码示例都建议这样做。

其次,(这是我开始感到困惑的地方)假设上述流程是标准流程,应该myapi.com是异步的吗?如果它不是异步的,并且每个请求可能需要几秒钟的时间,它不会造成与阻塞服务器相同的瓶颈吗?也许龙卷风或任何异步的正常用例示例将有助于阐明这个问题?谢谢你。

4

1 回答 1

2

是的,据我了解您的问题,这是 Tornado 的正常用例。

如果对 Tornado 服务器的所有请求都会向 发出请求myapi.com并且myapi.com正在阻塞,那么是的,myapi.com仍然是瓶颈。但是,如果只有一些请求必须由 处理myapi.com,那么 Tornado 仍然是一个胜利,因为它可以在等待对请求的响应的同时继续处理这些请求myapi.com。但无论如何,如果myapi.com无法处理负载,那么将 Tornado 服务器放在它前面不会神奇地解决这个问题。myapi.com不同之处在于您的 Tornado 服务器即使在忙碌时仍然能够响应请求。

于 2012-04-20T12:55:17.723 回答