我有一个 Java Web 应用程序,其中有一个 API 从 CouchBase 进行大量读取。因此,调用经常会超时。我有以下解决方案:
要么从前端多次调用来获取数据(将使用检查点逻辑,发送的数据大小将基于用户的网络带宽)。在 Java Web 应用程序中实现此目的的方法有哪些?
我的网络应用程序可以异步更新响应构建的前端。一旦所有读取完成,UI 就可以读取响应:
a. UI 可以轮询(直接或通过排队机制间接) b.使用网络钩子(Hook)?
可以通过哪些方式实现1.和2.?
最佳答案
这是一个关于模式的问题。非常典型的解决方案是切换到异步服务 - 这是您问题中的选项 2。服务器接收请求,对其进行验证,并向客户端回复 Ack(知识)响应,该响应可能包含服务器生成的请求 ID 以及提供响应的方法(通常是队列)。然后,客户端监听队列以获取与请求 ID 相关的响应。
另一种选择是所谓的长轮询。可以在这里找到对该概念的详细描述:What is HTTP Long Polling?
关于java - 如何在不轮询的情况下从 Java Web 应用程序获取响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53929758/