session入库操作例子 Openresty怎么跟后端tomcat共用session?
Openresty怎么跟后端tomcat共用session?
OpenResty和Tomcat分工不同,像这种异构模式,如果要共用Session会话,用传统的Cookie模式实现成本是很大的。
那对于这种异构或者集群分布式环境、又或者是不同域名间的Session共享该如何实现呢?要弄清楚这个问题,我们得先清楚Session的工作原理。
Session存储于服务器端,存储一般是内存、文件形式。服务器端可以存放很多Session,在众多的Session中如果需要对特定用户的Session进行操作,我们就必须要知道这个Session的唯一标识。这个标识就是SessionID,不同服务器/容器生成SessionID的算法不同,启用Session后,浏览器发出请求,SessionID就被写入用户浏览器的Cookie中,浏览器后续请求都会把Cookie附加在请求头中传递到服务器端,服务器端根据这个SessionID就能找到服务器端对应的Session进行操作了。
这样一来,只要我们能让SessionID实现共享,那Session就能共用了,所以我们可以采用以下方案来实现:
1、Session入库存储
将Session存入数据库,这样不管是OpenResty还是Tomcat都可以操作数据库,能轻松取出数据库中的Session。
2、Session存入NoSQL
此种方案和Session入库差不多,原理都一样,只不过我们用NoSQL(如:Redis),这样干的目的就是降低频繁操作数据库造成的性能开销。
综上,OpenResty中我们可以直接操作Redis,然后应用程序端也来操作Redis即可,这样可以实现Session共享。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。