时间不同步导致Spring session失效的巨坑
来源:互联网 发布:网络销售外包合同 编辑:程序博客网 时间:2024/06/04 19:33
Linux服务器时间不同步导致Spring session失效的巨坑
由于业务的需要,将原本单机环境转为集群式环境,为了不修改任务任务所以选择了spring session + redis作为session共享方案。
确认技术方案之后就在网上巴拉巴拉的搜索一堆关于spring session的资料,大楷开了一遍没有发现前人有任何躺坑后,开始着手。
安装redis过程忽略。
根据资料一步一步的将spring session加入工程,单节点情况项目成功跑起来,没有报错,session也成功的写入了redis。
然后为了稳妥起见,又在自己电脑上安装了nginx,并部署了3个tomcat,一切看起来都那么完美,多个节点之间完成了session共享。
到目前已经完成了所有前期准备,就差最后一步了。
噩梦开始了……
在线上将所有节点部署完成,然后打开浏览器顺利访问到应用,当然我们不能仅仅停留在看到页面完事的地步,怎么也要登录登录吧,于是……
然后……
无数次的输入用户密码,提示登录成功,最终的结果还是被拒之门外,o(╥﹏╥)o
接下来就是无数的填坑之旅
看日志……
看各种请求请求……
怀疑spring session有BUG……
甚至开启了远程DEBUG模式调试,终于在万能的DEBUG模式下看到,spring session的getSession的时候,如果获取到了session,首先会判断此session有没有过期,比较的方式也很简单,就是获取当前系统时间去和session的过期时间进行比较,如果当前时间小于过期时间,则标识此session没有过期。看到这里,瞬间有了一股醍醐灌顶之感,小宇宙终于在这里爆发了。
尼玛—>获取的session全部是过期的,然后……然后……当然是赶紧跑去看服务器时间,于是……哭了o(╥﹏╥)o,原来尼玛是你坑了我……
为了纪念这次躺坑之旅,特发此文
另外顺便记录一下Linux服务器时间同步
date命令:
date :查看当前时间,结果如下:Tue Mar 4 01:36:45 CST 2017
date -s 09:38:40 :设置当前时间,结果如下:Tue Mar 4 09:38:40 CST 2017
ntpdate命令:
ntpdate -u ntp.api.bz :网络时间同步命令
ntp常用服务器:
中国国家授时中心:210.72.145.44
NTP服务器(上海) :ntp.api.bz
- 时间不同步导致Spring session失效的巨坑
- WeX5不同步刷新导致的天坑
- 两节点时间不同步导致CRS-0184
- 两节点时间不同步导致CRS-0184
- 有失效时间的session,cookic
- 三种设置session的失效时间
- 关于session的失效时间和过期
- session 失效时间 php
- session失效时间
- 设置Session失效时间
- 设置Session失效时间
- session失效时间设置
- 设置session失效时间
- Session设定失效时间
- session失效时间
- 设置session失效时间
- session失效时间设置
- session失效时间设置
- 精炼正则表达
- mysql 添加索引后 在查询的时候是mysql就自动从索引里面查询了。还是查询的时候有单 独的参数查询索引?
- 数据挖掘中的 10 大算法
- 加密连接数据库明文密码
- PAT考试乙级1031(C语言实现)重点题目
- 时间不同步导致Spring session失效的巨坑
- ADV-202 最长公共子序列
- Android 仿高德地图可拉伸的BottomSheet
- Python进阶之网络通信过程再现
- golang interface深度解析
- 从Element学习Vue的使用
- Quartz作业调度框架入门学习
- 大菲波数
- java基础2:异常