浏览器前端客户端 - 等待还是轮询?
Browser frontend client - wait or poll?
我们要为高负载应用写一个服务器端。
来自浏览器的客户端发出调用,这将被处理很长时间 - 假设 1-3 分钟(我们在处理期间调用外部服务,它们可能是异步的等)
哪个更好 - 让浏览器 HTTP 调用一直等待答案,或者 return 立即让浏览器进行轮询?可能是 websocket?
答案是否会影响我们应该在服务器端使用哪种类型的框架 - 旧的好 Spring MVC 或像 Spring Flux 或 Vert.x 这样的响应式框架?
这个问题很宽泛,但我会尽力尽快解决。
如果您的请求如您所说,持续 1-3 分钟,那么轮询会更好。否则,您将不得不延长 HTTP 超时。 WebSockets 也是一种选择,但它主要取决于您要处理的客户端数量,以及您愿意拥有多少服务实例。
您在后端使用什么并不重要。对于短暂的请求,Vert.x 之类的东西肯定会更好,但是如果你有那些 1m 长的请求,无论如何你都会使用工作顶点,这意味着相同的旧线程池模型。
我们要为高负载应用写一个服务器端。
来自浏览器的客户端发出调用,这将被处理很长时间 - 假设 1-3 分钟(我们在处理期间调用外部服务,它们可能是异步的等)
哪个更好 - 让浏览器 HTTP 调用一直等待答案,或者 return 立即让浏览器进行轮询?可能是 websocket?
答案是否会影响我们应该在服务器端使用哪种类型的框架 - 旧的好 Spring MVC 或像 Spring Flux 或 Vert.x 这样的响应式框架?
这个问题很宽泛,但我会尽力尽快解决。
如果您的请求如您所说,持续 1-3 分钟,那么轮询会更好。否则,您将不得不延长 HTTP 超时。 WebSockets 也是一种选择,但它主要取决于您要处理的客户端数量,以及您愿意拥有多少服务实例。
您在后端使用什么并不重要。对于短暂的请求,Vert.x 之类的东西肯定会更好,但是如果你有那些 1m 长的请求,无论如何你都会使用工作顶点,这意味着相同的旧线程池模型。