多线程http客户端和tomcat7



我对如何在独立的java应用程序中处理http会话感到困惑。以下是详细信息:

java客户端连接到3个tomcat 7 servlet。当客户端启动时,它每3分钟启动2个调度线程/下载器和上传器/轮询2个servlet。它们都在各自类的私有字段中检索并存储jsessionid cookie。这导致tomcat中的两个会话在Web应用程序的生命周期内重复使用。到目前为止还不错。

有一个第三个服务/连接到第三个servlet/使用线程化"WebDispather"类的多个实例,该类类似于上述线程检索和存储会话,但这次是在专用静态字段中。调度器被大量使用,根据负载的不同,可能有多达150个实例同时运行。调度程序线程每隔一秒左右就会命中servlet

使dispatcher sessionid字段非静态会为每个实例创建一个会话,这是不好的。

将所有调度程序线程绑定到同一tomcat http会话会有什么影响?

谢谢


编辑:尽管dispather线程a绑定到同一会话,但会话本身并不包含任何信息。Servlet只处理请求参数。即调度员1:

localhost/messagecontrol?id=123&状态

调度程序线程2:localhost/messagecontrol?id=123&state=完成

//Servlet处理并忘记id和状态

据我所知,这意味着所有客户端线程都将共享相同的会话信息,如果有任何不打算共享的信息,这将是代码上的一个错误

如果您担心创建的线程数量(性能方面),请考虑在代码中实现线程池。

最新更新