zoukankan      html  css  js  c++  java
  • 服务器集群的session管理

      应用服务器的高可用架构设计主要基于服务无状态这一特性,但是事实上,业务总是有状态的,单机情况下,Session可由部署在服务器上的web容器(如Jboss)管理。在使用负载均衡的集群环境中,由于负载均衡服务器可能会分发到集群任何一台服务器上,所以保证每次请求依然能够获得正确的Session比单机要复杂的多。

      集群环境下,Session管理主要有以下几种手段。

      1、Session复制

      应用服务器开启Web容器的Session复制功能,在集群中的几台服务器之间同步Session对象,使得每台服务器上都保存所有用户的Session信息,这样任务一台机器都不会导致Session数据丢失。

      这种方案简单,但是只能使用集群规模比较小的情况。当集群规模比较大时,集群服务器之间需要大量的通信进行Session复制,占用服务器和网络大量的资源,系统不堪重负。

      2、Session绑定

      Session绑定可以利用负载均衡的源地址Hash算法实现,负载均衡服务器总是将来源于同一ip的请求分发到同一台服务器上。也可以根据cookie信息将同一用户的请求总是分发到同一台服务器上,当然这时的负载均衡服务器必须工作在http协议层上。这样在整个会话期间,用户所有的请求都在同一台服务器上处理。即session绑定在某台特定服务上,保证session总能在这台服务器上获取。

      但是session绑定的方案明显不符合我们对系统高可用的需求,因为一旦某台服务器坏了,那么该服务器上的session也就不复存在,用户请求切换到其他服务器后因为没有session而无法完成业务处理。

      3、利用cookie记录session

      将session记录在客户端,每次请求服务器的时候,将session放在请求发送给服务器,服务器处理完请求后再将修改过的session响应给客户端。但是cookie受到大小的限制,能记录的信息有限,每次传输请求响应都需要传输cookie影响性能。如果用户关闭cookie,访问就不会正常。

      4、session服务器

      使用session服务器,利用独立部署的session服务器统一管理session,应用服务器每次读写session时,都访问session服务器。

      

  • 相关阅读:
    C#遍历DataSet中数据的几种方法总结
    011_Eclipse中使用HDFSFileSystemAPI事例介绍
    011_用eclipse打开hadoop1.2.1源码出现The method getSplits(JobConf, int) is undefined for the type Object错误
    010_Hadoop配置测试成功后关机重启浏览器打不开dfs和MP
    09_Hadoop启动或停止的三种方式及启动脚本
    08_三大配置文件和五大守护进程
    07_Warning $HADOOP_HOME is deprecated.去除办法
    06_Hadoop配置伪分布式模式详解
    05_安装本地(单机)模式
    04_Apache Hadoop 生态系统
  • 原文地址:https://www.cnblogs.com/Hxinguan/p/8395288.html
Copyright © 2011-2022 走看看