springcloud redissessionnAttribute共享 getAttribute怎么实时去redis查

cloud来搭建分布式在搭建的时候会涉及到一个关键的问题,redissessionn统一的问题使用zuul作为网关转发来调用其他模块,zuul中的redissessionn和其他模块的redissessionn会不一致同时如果是前后端分离,还存在跨域的问题下面会给出解决的方法这样会导致用户登入时候,没法保存用户的信息redissessionn会存在问题。解决的办法采用的是spring-redissessionn和redis关键点如下:

 
 
 
 

 
4,解决前后端分离跨域问题,后台需要添加如下代码:

  
 
5解决前后端分离,前端调用接口需要添加的参数:
 
 
通过上面关键的几个步骤就解決了统一redissessionn的问题并且解决了跨域的问题了,这里没有给出详细的代码如果需要参考详细的代码,返回git地址:
 //redis中存有上次请求的时间上次桶Φ剩下的令牌数两个key
 
主要问题就是在蓝色代码这一段在flux发生异常时,他的异常处理是直接使用flux([1,-1])这样一个数组进行后续操作居然没有异常ㄖ志输出,导致一直请求redis失败但是无异常日志,并且throwable -> Flux.just(Arrays.asList(1L, -1L)是在行内完成无法直接定位异常信息,只能一层层往下找在execute中有个eval方法
 
将断点咑在蓝色代码处终于定位到异常信息

意思是redis不支持evalsha命令,估计是redis版本过低不支持此命令,然后在虚拟机上重装了最新的5.0.5版本redis开墙等操作後限流终于生效
--请求距离上次请求过的了几秒
--令牌池中的请求还剩多少
--令牌池中的请求大于请求数则允许请求
--缓存请求后令牌数和当期時间
--返回获取是否允许和令牌数
 


我要回帖

更多关于 redissession 的文章

 

随机推荐