分布式Session
传统的应用服务器,如tomcat、jboss等等,其自身所实现的session管理大部分都是基于单机的。
对于大型分布式网站来说,支撑其业务的远远不止是一台服务器,而是一个分布式集群,请求在不同服务器之间跳转,需要保持服务器之间的session同步。
传统网站一般通过将一部分数据存储在cookie中,来规避分布式环境下session的操作,这样做弊端很多,一方面cookie的安全性一直广为诟病,并且,cookie存储数据的大小是有限制的,随着移动互联网的发展,很多情况下还得兼顾移动端的session需求,使得采用cookie来进行session同步的方式弊端更为凸显。(微信扫码使用cookie就无法实现用cookie实现分布式session)
分布式Session的解决方案(应用服务器或者使用缓存服务器單獨抽取出來)
前端用户请求经过随机分发之后,可能会命中后端任意的web server,并且,web server也可能会因为各种不确定的原因宕机,这种情况下,session是很难在集群间同步的。
而通过将session以sessionid作为key,保存到后端的缓存集群中,使得不管请求如何分配,即便是web server宕机,也不会影响其他的web server通过sessionid从cache server中获得session,这样,即实现了集群间的session同步,又提高了web server的容错性
容错:系统在运行时有错误被激活的情况下仍能保证不间断提供服务的方法和技术。