gpt4 book ai didi

java - 多线程http客户端和tomcat 7

转载 作者:行者123 更新时间:2023-11-28 23:46:21 24 4
gpt4 key购买 nike

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

java 客户端连接到 3 个 tomcat 7 个 servlet。当客户端启动时,它会启动 2 个计划线程/下载器和 uploader /每 3 分钟轮询 2 个 servlet。他们都在各自类的私有(private)字段中检索和存储 jsessionid cookie。这导致 tomcat 中的 2 个 session 在 web 应用程序的生命周期内重复使用。到目前为止一切顺利。

有第三个服务/连接到第三个 servlet/使用线程化“WebDispather”类的多个实例,该类检索和存储 session 类似于上述线程,但这次是在私有(private)静态字段中。调度程序被大量使用,可能有多达 150 个实例同时运行,具体取决于负载。调度程序线程每隔一秒左右就会攻击 servlet。

使调度程序 sessionid 字段非静态会为每个实例创建一个 session - 不好。

将所有调度程序线程绑定(bind)到同一个 tomcat http session 有什么影响?

谢谢


编辑:尽管 dispather 线程绑定(bind)到同一 session ,但 session 本身不包含任何信息。Servlet 只处理请求参数。IE。调度员 1:

localhost/messagecontrol?id=123&state

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

//Servlet处理并忘记id和state

最佳答案

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

如果您担心创建的线程数量(性能方面),consider implementing a thread pool在您的代码中。

关于java - 多线程http客户端和tomcat 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13870266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com