本次目标
在传统的SpringBoot项目开发过程中,是将用户的登录状态保存在Session中的。但是基于微服务的项目各模块都是一个单独的SpringBoot项目,这时Session共享就是首要解决的问题。
有一种思路,就是将Session在每个服务器中同步一份,但是这种方式有一种很明显的缺陷,就是数据冗余——每个服务器存在相同的数据。
另外一种思路,就是将会话信息保存在第三方应用中,每个微服务都从这个第三方服务中设置和获取会话信息,这就用到了Redis技术。
使用Redis实现Session的会话存储功能,结构类似于这样:
准备工作
创建RedisCluster集群。参考Redis6.0.4 服务器集群搭建
前端逻辑
首页
index.html
总体思路:在HTML页面没加载完成时,就判断本地有没有Cookie键为CommonUser的Cookie。如果存在,继续后面的逻辑。如果不存在,直接跳转到登录页面;
<script>
//不用等到jquery下载完毕,用原生js处理更快
var havec=false;
var cookieV;
var strcookie = document.cookie;//获取cookie字符串
var arrcookie = strcookie.split(";");//分割
//遍历匹配
for ( var i = 0; i < arrcookie.length; i++) {
var arr = arrcookie[i].split("=");
if(arr[0].trim()=="commonUser"){
havec=true;
//存储登录信息的cookie值
cookieV=arr[1].trim();