首页 > 解决方案 > 高响应时间与排队

问题描述

假设我有一个由其他网络服务内部使用的网络服务,平均响应时间为 1 分钟。这种具有“同步”响应的服务与让服务返回请求的 id、在后台处理它并让客户端轮询结果的优缺点是什么?

保持活动状态超过一分钟的 HTTP 连接有什么缺点吗?TCP的默认保持活动在这里重要吗?

标签: httpwebmicroservices

解决方案


根据您的应用程序,这可能很重要。值得一提的是!

HTTP 协议是同步的

HTTP 是异步的存在非常广泛的误解。Http 是同步协议,但您的客户端可以异步处理它。例如,当您使用 http 调用任何服务时,您的 http 客户端可能会安排在后台线程(异步)上。但是,http 调用将一直等待,直到超时或响应返回,在此期间,http 调用链正在同步等待。

插座

由于 HTTP 使用套接字并且对套接字有硬性限制。每个 HTTP 连接(如果每次都创建新的)都会打开新的套接字。如果您一次有数百个请求,您可以想象同步安排了多少个 http 调用,并且您可以运行套接字。不确定其他操作系统,但在 Windows 上,即使您完成了请求套接字,它们也不会立即处理并停留几分钟。

网络连接

不建议长时间保持 http 连接。如果您部分或完全失去网络怎么办?您的 http 请求将超时,您根本不知道状态。

牢记所有这些事情,最好在后台进程上安排长时间运行的任务。


推荐阅读