怎么敲代码做网站,网站建设衣服,地方网站做外卖,一级消防工程师考试试题及答案默认情况下#xff0c;session是保存在TOMCAT服务器内存中的#xff0c;如果我们有两个TOMCAT#xff0c;它们的session是没有共享的。我们这回要做的就是把session保存在redis中#xff0c;这样两个TOMCAT就可以共享session了。其实这货的详细原理还是很复杂的#xff0c…默认情况下session是保存在TOMCAT服务器内存中的如果我们有两个TOMCAT它们的session是没有共享的。我们这回要做的就是把session保存在redis中这样两个TOMCAT就可以共享session了。其实这货的详细原理还是很复杂的不过大家只要记住一点TOMCAT要作集群就必须实现session共享。还好这个功能实现起来比较简单下面我们来实现它。
GitHub: https://github.com/Dengxd/JavaCluster 所有源码都在这里GitHub经常连不上要多刷新几次
安装Redis
Windows Redis下载地址: Releases · zkteco-home/redis-windows · GitHub github经常连不上多试几次 点击这个Source code(zip)就行这家伙也是搞笑这边写着源代码我下载下来却发现没有源代码就是EXE文件也好省得编译了。
解压文件直接双击运行redis-server.exe出现这个界面 好redis安装完成。
安装配置nginx
安装NGINX可以参考上一篇文章《Java集群单体架构升级到集群架构一使用NGINX建立集群》不过今天我们不使用三台服务器就用一台服务器如下图 TOMCAT、NGINX在同一台服务器里面那么在配置NGINX的时候IP就要改成127.0.0.1
修改nginx.conf 文件把
upstream mytomcat {server 192.168.1.200:8000;server 192.168.1.201:8001;
}改成
upstream mytomcat {server 127.0.0.1:8000;server 127.0.0.1:8001;
}如果你已经启动了nginx要另外开一个cmd窗口用命令 nginx -s reload 来刷新配置 写一个登录网页
这个登录网页和普通的网站登录功能差不多也有点区别就是在验证用户名密码之前先看一下session里面有没有用户名如果有的话说明已经登录过了就不再登录了。另外就是把端口号也传到页面显示出来。
String loginUser(String)session.getAttribute(user);
request.setAttribute(port,MainApplication.port);
if(loginUser!null){return hello;
}咱们简单一点不读数据库了用户名用abc, 密码用123
if(user.equals(abc) password.equals(123)) {session.setAttribute(user,user);return hello;
}pom.xml文件中要加上
dependencygroupIdorg.springframework.session/groupIdartifactIdspring-session-data-redis/artifactId
/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId
/dependencyapplicatioin.properties文件要加上redis和session的配置
spring.redis.hostlocalhost
spring.redis.port6379
# spring.redis.password123456
spring.redis.timeout1000
spring.redis.jedis.pool.min-idle5
spring.redis.jedis.pool.max-active10
spring.redis.jedis.pool.max-idle10
spring.redis.jedis.pool.max-wait2000# session存到redis中最重要的就是这一行
spring.session.store-typeredis
# session失效时间
spring.session.timeout1800
server.servlet.session.cookie.max-age1800测试
首先启动登录网页程序打开两个cmd窗口分别运行下面两个命令
java -jar login-0-SNAPSHOT.jar --server.port8000java -jar login-1.0-SNAPSHOT.jar --server.port8001
然后我们启动nginx
在浏览器中输入 http://localhost/login 输入用户名abc, 密码123点击submit, 进入hello页面 可以看到是8000端口的tomcat在处理用户的登录
我们可以多开几个标签页输入http://localhost/hello 如果看到8001端口就说明成功了。
查看redis中保存的数据
双击运行redis-cli.exe 输入 keys * , 回车可以看到redis中保存的session数据 session相关原理
如果您对session原理有兴趣可以上网去搜索一下这种文章还是很多的这里提供几个
https://blog.csdn.net/YXXXYX/article/details/125342292
https://www.cnblogs.com/jing99/p/11785070.html
https://blog.csdn.net/qq_43842093/article/details/120836732