分布式session的几种实现方式详解及总结

TheDisguiser 2020-04-23 22:39:22 java常见问答 9154

在前端开发中,因为距离的原因有时候会用到分布式session,下面就让小编带你了解一下分布式session的几种实现方式吧。

分布式Session的几种实现方式

1.基于数据库的Session共享

2.基于NFS共享文件系统

3.基于memcached 的session,如何保证 memcached 本身的高可用性?

4. 基于resin/tomcat web容器本身的session复制机制

5. 基于TT/Redis 或 jbosscache 进行 session 共享。

6. 基于cookie 进行session共享

介绍下常用的分布式Session 实现

1. Session Replication 方式管理 (即session复制)

简介:将一台机器上的Session数据广播复制到集群中其余机器上

使用场景:机器较少,网络流量较小

优点:实现简单、配置较少、当网络中有机器Down掉时不影响用户访问

缺点:广播式复制到其余机器有一定廷时,带来一定网络开销

2. Session Sticky 方式管理

简介:即粘性Session、当用户访问集群中某台机器后,强制指定后续所有请求均落到此机器上

使用场景:机器数适中、对稳定性要求不是非常苛刻

优点:实现简单、配置方便、没有额外网络开销

缺点:网络中有机器Down掉时、用户Session会丢失、容易造成单点故障

3. 缓存集中式管理

简介:将Session存入分布式缓存集群中的某台机器上,当用户访问不同节点时先从缓存中拿Session信息

使用场景:集群中机器数多、网络环境复杂

优点:可靠性好

缺点:实现复杂、稳定性依赖于缓存的稳定性、Session信息放入缓存时要有合理的策略写入

cookie机制和session机制的区别

一般的说cookie机制采用的是在客户端保持状态的方案,而session机制相比cookie不同的是它是使用在服务器端保持状态的方案。

同时我们看到,由于在服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能会需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择。

会话cookie和持久cookie的区别

如果不设置过期时间,就表示这个cookie生命周期只会在浏览器开启会话期间,只要关闭浏览器窗口,cookie就会消失。这种生命周期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。

如果设置了过期时间,浏览器就会把这个cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。

以上就是今天的所有内容了,更多有关Java入门的内容请持续关注我们了解详情吧。