我们需要支持10k+用户,其中每个用户发起请求并等待来自服务器的响应(响应可能需要长达 20-30 秒才能到达)。它只是来自客户端的一个请求,经过服务器长时间的处理,会发送一个响应,然后断开连接。在后台,服务器会做一些数据库搜索并等待其他后台进程完成通知,然后再响应客户端。
在做了一些研究之后,我发现我们需要使用诸如大气框架之类的东西来支持 websockets/sse 事件/长轮询以及像netty (=> nettosphere ) 或jetty这样的异步服务器。至于我的经验——主要是 Java EE 世界和 Tomcat 服务器。
我的问题是:
就我的经验和我们的要求而言,什么更容易实施:大气+网络或大气+码头?哪一个可以更好地扩展,具有更容易的学习曲线并且更容易实现其他 Java 技术?
您如何在大气中实现仅发送给原始客户端而不广播给其他客户端的响应?(我找到的所有例子都是广播的)。
使用大气框架我们的响应时,我如何在netty(或码头)中实施?即,客户端发送一个请求,在服务器接收到它后,一些后台进程会运行,当它们完成时,我需要定位连接并传输响应。这是可以实现的吗?