有一个Web应用程序的设计,我不确定如何评价它的好坏。
思路如下:
您在接受客户端请求的 Tomcat 中部署了一个 Web 应用程序(非常重要)。我猜负载可能是 Tomcat 可以处理的量。
现在实际处理不是在容器内部完成,而是委托(delegate)给另一个进程,它通过单个 TCP
连接进行连接。所以这里本质上发生的是多路复用。
IE。客户端请求由客户端并发发送,这些请求作为消息发送到另一个进程进行处理(我猜进程本身是多线程的)但是通过一个连接。
我从一位同事那里听说类似的设计(在另一个平台上)性能非常好,但从我的角度来看,这在使用单个 TCP 连接方面存在瓶颈。
尽管我在多线程方面经验丰富,但我并不真正了解或使用过异步方法(nio 等),我想知道这是否属于此类。
有没有人将多路复用用作大项目的一部分(至少以这种方式)?这是一个好的选择吗?
最佳答案
我同意你的看法。这是一个瓶颈和糟糕的设计。如果第二个 TCP 服务器可以是多线程的并且一次处理多个客户端,那么您当然应该以这种方式实现它,就像另一个 TCP 服务器(例如 Tomcat 本身)一样,并使用多个连接。
关于java - 设计网络应用程序 : where should business logic reside?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12516325/