undertow 与redis集成实现session共享

请教波哥,undertow 怎么解决集群部署,session共享的问题,是否可以提供类似于 tomcat 与redis集成实现session共享解释或者例子。

评论区

黑猫惊涨

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());即可搞定。

热门反馈

扫码入社