我刚刚开始研究龙卷风和异步Web服务器。在许多龙卷风的例子中,较长的请求由以下内容处理:
因此,假设用户在/retrive
向tornado服务器发出请求/retrieve
将向内部apimyapi.com/retrieve\u posts\u请求用户id/
或w/e。获取请求时,api请求可能需要一秒钟的时间才能运行,然后当它最终返回tornado服务器时,响应就会启动。首先,这种气流是使用龙卷风的“正常”方式吗?网上的许多代码示例都建议这样做。
其次,(这就是我开始困惑的地方)假设上面的流是标准流,那么myapi.com
应该是异步的吗?如果它不是异步的,并且每个请求可能需要几秒钟,那么它不会产生与阻塞服务器相同的瓶颈吗?也许龙卷风或任何异步的普通用例的例子将有助于澄清这个问题?谢谢你。
是的,正如我理解你的问题,这是龙卷风的正常用例。
如果对Tornado服务器的所有请求都会向myapi.com
发出请求,并且myapi.com
被阻止,那么是的,myapi.com
仍然是瓶颈。然而,如果只有一些请求必须由myapi.com
处理,那么Tornado仍然是一个胜利,因为它可以在等待对myapi.com
的请求的响应时继续处理这些请求。但是不管怎样,如果myapi.com不能处理负载,那么在它前面放一个Tornado服务器并不能神奇地解决这个问题。不同之处在于,即使在myapi.com
忙时,您的Tornado服务器仍然能够响应请求。
我们有一个不稳定的旧单块系统,95%的请求在500毫秒内处理,但其他5%需要 我们当前的方法是使用具有指数回退重试机制的异步http客户端。但随着流量的增加,这将导致性能问题 我的想法是在S中有一个超时500毫秒的同步超文本传输协议调用和一个回退方法,该方法将一个任务添加到队列中,以便将来重试超文本传输协议请求,同时将202返回给C,并返回一个链接来检查任务的状态,类似于。我知道我需要将S公开的服
我正在应用程序上启动一个spring批处理作业,开始使用 spring.batch.job.names工作 不幸的是,这以某种方式延迟了tomcat服务器的启动。作业的运行时间为几分钟,因此我得到以下错误: localhost上的Tomcat v8.0服务器无法在45秒内启动。如果服务器需要更多时间,请尝试在服务器编辑器中增加超时。 问题:如何在不阻止tomcat启动的情况下运行此作业?例如异步运
我试图了解gRPC中的异常处理机制是如何工作的。 除了try-catch块之外,还有其他方法来处理运行时异常,例如服务器端的IllegalArgumentException吗? 例如,我有一些gRPC流式客户端服务,当传递的参数不满足深层次的一些断言时(在某些库中,例如,com.google.common.base.Preconditions),方法onNext抛出IllegalArgumentE
我正在尝试将一个向服务器发送消息的异步任务迁移到RxJava。该任务大致执行以下操作: 1) 创建将要发送的消息(保存到数据库) 2)向用户显示消息(状态为“发送”) 3)将消息发送到服务器(下面的代码段) 4)将消息标记为已发送或失败(保存到数据库) 5)更新UI 我创建了所需的Rx链,部分如下所示: 当我订阅上述内容时,我会得到一个一次性的。通常,我会将其添加到CompositeDisposa
我试图理解我在其他文章中看到的关于同步和异步web请求的术语,因此,在下面的场景中: 客户机同步地向服务器发送请求(这意味着客户机被阻塞,直到它收到响应),服务器异步地制定响应(它为每个请求启动一个新线程,并在该线程上创建响应)。 请求本身是同步的,而请求的处理是异步的吗?
我有一个基于strut的应用程序,我在其中调用我的Restful Web Service。我的实际服务调用如下所示: 呼叫通过只是罚款,但我想处理的情况下,如果我的服务是关闭,我想超时1分钟,而不是等待这么长时间。