我刚开始看龙卷风和异步网络服务器。在龙卷风的许多示例中,较长的请求由以下内容处理:
因此,出于假设目的,用户正在/retrive
向龙卷风服务器发出请求。 /retrieve
会向内部API myapi.com/retrieve_posts_for_user_id/
或w / e发出请求。在获取请求时,api请求可能需要一秒钟才能运行,然后当它最终返回龙卷风服务器响应时。 首先,这种流程是使用龙卷风的“正常”方式吗?在线的许多代码示例都是如此。
其次,(这是我的思绪开始变得难以理解的地方)假设上述流程是标准流程,myapi.com
应该是异步的吗?如果它不是异步并且请求可能需要几秒钟,那么阻塞服务器会产生同样的瓶颈吗?也许龙卷风或任何异步的正常用例的例子有助于揭示这个问题?谢谢。
答案 0 :(得分:2)
是的,正如我理解你的问题,这是Tornado的正常用例。
如果对您的Tornado服务器的所有请求都向myapi.com
发出请求,并且myapi.com
被阻止,那么是的,myapi.com
仍然是瓶颈。但是,如果只有一些请求必须由myapi.com
处理,那么Tornado仍然是一个胜利,因为它可以在等待myapi.com
请求的响应时继续处理此类请求。但无论如何,如果myapi.com
无法处理负载,那么将Tornado服务器放在它前面就不会有神奇的解决方法。不同之处在于,即使myapi.com
忙,您的Tornado服务器仍然可以响应请求。