首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
undertow 与redis集成实现session共享
黑猫惊涨
2019-04-23 19:46
请教波哥,undertow 怎么解决集群部署,session共享的问题,是否可以提供类似于 tomcat 与redis集成实现session共享解释或者例子。
项目:
JFinal Undertow
2
1
评论区
黑猫惊涨
2019-04-23 19:47
其他大神有了解的,也请到此一游。
回复
JFinal
2019-04-23 20:00
配置一个 RedisPlugin,将原先存放在 session 中的数据,改成存放到一个中心化的 redis 中即可
回复
黑猫惊涨
2019-04-24 09:08
@JFinal
多谢波哥
回复
124653847atqq.com
2019-06-08 20:37
@黑猫惊涨
近期遇到类似需求,请问你那边搞定了不?方便分享一下?
回复
黑猫惊涨
2019-06-10 09:10
@124653847atqq.com
我就是按照波总的提示,将session存储在redis中,不过我用的是j2cache进行的存放。
回复
124653847atqq.com
2019-06-10 11:18
@黑猫惊涨
谢谢!
试了一下j2cache,同一个浏览器退出登录之后换一个用户登录总是报session过期,还得在研究一下看看有无在JFinal中合适的更加简洁的办法。
回复
JFinal
2019-06-10 11:47
@124653847atqq.com
其实就是用上 jfinal 提供的 RedisPlugin 是最简单的
登录涉及的信息全部放在 redis 中,共享这个信息就实现了集群
回复
124653847atqq.com
2019-06-10 22:50
@JFinal
旧项目,原来的登录逻辑使用的是http session,想着能否不修改源代码,通过filter实现一个接管原来的session,再用RedisPlugin操作redis对session进行存取。
回复
JFinal
2019-06-10 23:11
@124653847atqq.com
这个必然可以,做一个 Handler , 然后将 handle(request, response, isHandler) 中的 request 对象弄个包装类,覆盖掉其中的几个 getSession() 方法,返回一个你自己包装过的 session
让这个包装过的 session 存取数据使用 redis 即可
可以看一下 jfinal 中的这个类,里头就扩展过 session :
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/ext/interceptor/SessionInViewInterceptor.java
回复
124653847atqq.com
2019-06-10 23:26
@JFinal
多谢波总!正需要这个!
回复
SuperEric
2021-02-26 17:50
@124653847atqq.com
可以自己实现一个RedisSessionManager实现,原代码不用任何修改。启动中增加一名builder.getDeploymentInfo().setSessionManagerFactory(new RedisSessionManagerFactory());即可搞定。
回复
发送
我要反馈
热门反馈
扫码入社