gpt4 book ai didi

Tomcat 7 中的 session 和并行部署

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

关于并行部署,Tomcat 7 configuration reference说:

You may deploy multiple versions of a web application with the same context path at the same time. The rules used to match requests to a context version are as follows:

  • If no session information is present in the request, use the latest version.
  • If session information is present in the request, check the session manager of each version for a matching session and if one is found, use that version.
  • If session information is present in the request but no matching session can be found, use the latest version.

我的问题是多方面的:

  1. “如果请求中没有 session 信息”到底是什么意思?这是否只是在请求中(或在 URL 中或配置的任何地方)寻找 jsessionid cookie?
  2. 我应该在哪个单元中查找请求与上下文匹配的位置?我一直在仔细研究 Tomcat 7.0 源代码,但看不到发生这种情况的位置。
  3. 有没有办法让 Tomcat 谎称存在 session 信息?我已经通过将请求的 requestedSessionId 设置为阀门中 X-Auth-Token header 的内容来欺骗 Tomcat,但我怀疑这发生得太晚了愚弄任何决定将请求发送到新版本的人。
  4. 如果无法对 Tomcat 撒谎,自定义 session 管理器是否是解决该问题的可行方案?在我看来并非如此,因为在没有咨询 session 管理器的情况下,似乎回答了请求中是否存在 session 信息的是或否问题。

最佳答案

如果将session存储到memcached中,并设置sticky为false,Tomcat将不会自己处理session,而是每次必要时从memcached中读取session。

因此 Tomcat 将在新版本准备就绪时取消部署旧版本而不检查 session ,因为 Tomcat 不处理 session 。

这对我们来说是一个非常有用的功能。当我们必须部署新版本时,我们不需要使用滚动升级和更改负载均衡器。

关于Tomcat 7 中的 session 和并行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27683291/

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