分布式解决方案
1.谈谈分布式Session的几种实现方式?
Session Replication session复制
简介: 将一台机器上的session数据广播复制到集群中其他服务器上。
使用场景:机器较少,网络流量较小
优点:实现简单,配置较少,当网络中有机器down掉是不影响用户访问。
缺点:广播式复制到其他机器有一定延迟;带来了一个定的网络开销;占用服务器内存。
session Sticky 粘性session
简介:当用户访问集群中的某台机器后,强制指定后续所有需求均落到此机器上。
使用场景:机器数量适中,对稳定性要求不是非常苛刻。
优点:实现简单,配置方便,没有额外的网络开销。
缺点:网络中有机器down掉,用户session丢失,容易造成单点故障。
缓存集中式管理
简介:将session存入分布式缓存集群中的某台机器上,当用户访问不同节点是,先从缓存中拿session信息。
场景:机器数量较多,网络环境复杂。
优点:可靠性好
缺点:实现复杂,稳定性依赖于缓存的稳定性,session信息放入缓存时,要有合理的策略写入。
2.Session和Cookie的区别和联系以及Session的实现原理?
1、session是保存在服务器,客户端不知其中信息;cookie是保存在客户端的,服务器知道其中信息。
2、session中保存的是对象;cookie中保存的是字符串。
3、session不区分路径,同一个用户在访问同一网站期间,所有的session在任何一个地方都可以访问到;而cookie中如果设置了路径参数,那么同一网站中,不同路径下的cookie互相无法访问。
4、session需要借助cookie才能生效,如果客户端禁用cookie,session将失效。
http是无状态的协议,客户每次读取web页面时,服务器都会打开新的会话。session就是一种保存上下文信息的机制,针对每个用户,变量的值保存在服务器端,通过sessionID来区分不同的客户。
区别
cookie是采用在客户端保持状态的方案,而session是在服务器端保持状态的方案。由于服务器段保持状态的方案在客户端也需要一个标识,所以session机制可能需要借助cookie机制来达到保存标识的目的。
session cookie(会话cookie)和persistent cookie(持久化cookie)。
会话cookie是保存在浏览器内存中的,不是写到硬盘上。session传递的方式是依赖于cookie或重写u