java - 使用外部 tomcat 容器进行春季启动的 Redis 会话的最佳用法是什么
问题描述
伙计们。
我正在使用带有 tomcat 容器的 Spring Boot 框架,并且由于维护此服务的几个原因,我尝试与 Redis 共享会话。通常,我使用按照指南推荐的 spring-session-data-redis。
https://www.baeldung.com/spring-session
但是,我有一个关于使用 spring-session-data-redis 与 Redis 共享会话的问题。如果我需要设置和使用多个服务器集群来减少流量压力(使用负载均衡器),我是否还应该设置 Tomcat 配置以使用 Redis 会话?还是 spring-session-data-redis 足以为多个服务器集群进行会话共享?
如果有人访问了特定域中的错误子路径(例如somewheredomain.com/not_spring_project/some_path),我想spring session 无法共享会话。如果这个人用正确的路径访问了 A-tomcat 服务器,然后用错误的路径访问了另一个 tomcat 服务器,那么这个人第一次访问的另一个 tomcat 服务器可能会生成(或重写)jsessionid。
有没有人能够用外部 tomcat 容器解释 Spring Boot 的最佳使用会话共享?
解决方案
有一段时间我努力寻找这个问题的答案。在谷歌云平台上用多台虚拟机做试验台后,终于得到了答案。
答案很简单,Spring-session 的 session key 不是 jsession_id :P 所以,开发者不用担心多个 tomcat 服务器会发出新的 jsession_id。
只是开发者需要将 spring-session-data 与 redis 一起使用,然后他们可以在 redis 服务器上共享 session 数据。
推荐阅读
- label - Linux 上的 Octave:无法为标签设置文本背景颜色
- c - 如何使用现有名称数组创建电子邮件地址?
- angularjs - Wordpress 使用自定义端点 rest api 上传多个图像(离子作为最终用户)
- typescript - 如何将 TypeScript 用于 next.js 服务器?
- java - 为什么这个方法总是返回 -1
- python - 与多处理一起使用时,PyTesseract 调用工作非常缓慢
- python - Pandas DataFrame 中列表中元素的位置
- javascript - 如何在数据更改时呈现动态数组并更新
- javascript - 将两个数字与字符串相加
- java - bonigarcia webdrivermanager firefox浏览器问题