多语言展示
当前在线:447今日阅读:126今日分享:42

什么是session机制

session信息是在web容器里,都是存储在内存里的
工具/原料
1

LVS负载均衡设备

2

web容器的选择,比如tomcat等等。

方法/步骤
1

2

当请求服务器中的web容器的时候,它会自动给每个连接它的客户端生成一个sessionId值

3

当你获得sessionId后,那么容器会把你的sessionId值放到http协议里的cookie域下面的。当用户以后的每个请求都会让这个sessionId值跟随cookie一起传递到服务器,服务器通过sessionId找到找到内存中存储的该用户的session内容,session在内存中的数据结构是一个map格式。

5

同步的起初案例:java里的tomcat容器就是这种方式,当需要同步的web容器越多,那么web应用所承载的并发数量并没有因为服务器的增加而线性提升,当服务器数量达到一定的临界值后,web应用并发数量还会见少。还有早期的淘宝,就是讲session信息直接存储到浏览器cookie里,每次请求的时候,cookie信息就跟着http一起传递到web容器里,这样避免了web服务器之间session同步的信息的问题,但此方案不安全吗,但是它仅仅跟踪用户的状态,把session存在cookie里其实也没什么大不了的。

6

来自客户端的请求到达web server之前,可以用F5,就是一个用来做负载均衡的硬件设备,作用是讲用户请求均匀的分发到后台的服务器集群。当然也有软件的负载均衡解决方案就是::LVS。那这些负载均衡的设备有个能力是讲一个http请求从客户端到达最终的存储服务器之间可能经过很多不同的设备。比如把一个请求比作一个告诉公路上的一辆小骑车,这些设备叫做这些节点就是高速公路收费站,收费站都恩那个根据自已需求改变http报文内容,可以记住每个sessionId值对应的后台服务器,当一个请求带sessionId值的通过这些负载均衡设备时候会根据该sessionId值直接找到指定的web服务器,这就是session粘滞,此方法大大提高了服务器之间拷贝session的需要,但比村cookie效率低,对于网站的稳定性也有一定影响,比如某台服务器挂掉了,那么连接该服务器的回话也就失效啦。

注意事项
1

用LVS要保证服务器的系统正常运行

2

sessionId的安全保护措施

推荐信息