tomcat集群环境下如何保证session一致性

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: tomcat集群环境下如何保证session一致性

为什么集群环境下,会出现session不一致问题?

答:使用nginx的负载均衡之后,不确定访问哪个tomcat,导致客户端存储的jsessionid携带到集群环境下的其他tomcat是无效的。

关于集群环境下,解决session不一致问题?


方式1:负载均衡的策略ip黏着:在nginx的default.conf配置ip_hash,这样客户端会固定的访问某一台服务器


方式2:使用redis管理集群环境的session,session对象不在存储在tomcat服务器,而是redis数据库中,如下图所示:

实现原理描述:

客户端访问nginx,分配到tomcat-1服务器,创建session对象,jsessionid,将jsessionid作为key,session对象作为value存到redis数据库中,随着响应将jsessionid返回给客户端浏览器,该客户端浏览器向nginx在次发出请求,写cookie(包含jsessionid),到nginx后被分配到tomcat-2服务器,tomcat-2获取cookie中的jsessionid,去redis数据库查找对应的session对象并且返回使用

实现步骤:

1.将下边三个jar上传到tomcat服务器中的lib目录下

要重写tomcat的session实现方法,将session管理到redis服务器中

如下图所示:

2. 修改tomcat中conf目录下的context.xml

原因1:我们上传的jar中的类,替换了tomcat中的代码,需要让tomcat知道我们的类叫什么名字

原因2:配置redis数据库所在服务器的ip地址和redis数据库的端口号

3. 重启tomcat服务

进入bin目录 ,先执行./shutdown.sh 再执行./startup.sh

注意:以上操作集群中的tomcat(有几个就操作几个)都是相同的操作

4,测试

做一个登陆页面,测试一下上面的操作有没有成功

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
目录
相关文章
|
JavaScript Java 应用服务中间件
centos部署vue项目(java,tomcat环境的搭建)
centos部署vue项目(java,tomcat环境的搭建)
241 0
|
4月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
262 27
|
4月前
|
Java 应用服务中间件 Apache
在IntelliJ IDEA中使用Maven配置Tomcat环境
此配置方法具有较高的实用性,简单易懂。遵循以上步骤,您将能顺利在IntelliJ IDEA中使用Maven配置Tomcat环境,从而进行Web项目的开发和调试。
329 18
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
297 11
|
5月前
|
Java 关系型数据库 MySQL
JDK、Tomcat、MariaDB数据库和Profile多环境的配置与使用
以上就是JDK、Tomcat、MariaDB数据库和Profile多环境的配置与使用的基本步骤。这些步骤可能会因为你的具体需求和环境而有所不同,但是基本的思路是一样的。希望这些信息能够帮助你更好地理解和使用这些工具。
162 17
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
321 0
|
8月前
|
网络协议 Java 应用服务中间件
centos7环境下tomcat8的安装与配置
本文介绍了在Linux环境下安装和配置Tomcat 8的详细步骤。首先,通过无网络条件下的文件交互软件(如Xftp 6或MobaXterm)下载并解压Tomcat安装包至指定路径,启动Tomcat服务并测试访问。接着,修改Tomcat端口号以避免冲突,并部署Java Web应用项目至Tomcat服务器。最后,调整Linux防火墙规则,确保外部可以正常访问部署的应用。关键步骤包括关闭或配置防火墙、添加必要的端口规则,确保Tomcat服务稳定运行。
|
11月前
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
117 4
|
应用服务中间件 Linux 网络安全
【Azure 应用服务】App Service for Linux 环境中为Tomcat页面修改默认的Azure 404页面
【Azure 应用服务】App Service for Linux 环境中为Tomcat页面修改默认的Azure 404页面
131 5
|
Java 应用服务中间件 Windows
【App Service for Windows】为 App Service 配置自定义 Tomcat 环境
【App Service for Windows】为 App Service 配置自定义 Tomcat 环境
110 2