论坛首页 Java企业应用论坛

大规模集群下的http 状态解决方案

浏览 1631 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-09-19  

Http本身是没有状态的,因为我们需要,才有了cookie和session,在不同的应用里面我们会有不同的解决方案,因为很多节点集群,因此基本上不会考虑应用服务器自己的方案。

 

1.简单的cookie方案

   将请求状态保存在cookie里的,严格限制个数、大小,每一个attribute对应一个cookie, 然后,加密解密啥的,这个阶段一个CookieUtil就搞定,应用里面直接使用这个util读写cookie,在简单但是访问量很大需要集群的应用里面比较合适

 

2.稍微复杂一点

    自己实现一套MySession机制,在request和response上包装一下,将多个attribute包装起来,统一序列化,写cookie,这使用应用只需要关心MySession,不知道有cookie,稍微进步一点了,可以在MySession里控制cookie的数量和大小了

 

3.完善

    自己实现HttpSession机制,session里的数据可以根据规则存放入cookie或者集中的session server,session server可以是数据库、内存cache或其他的keyvalue引擎,应用只知道有HttpSession

 

几个方案,一个比一个完善,一个比一个复杂,根据具体情况选用吧。

 

另外,如果节点不多的话(一般个位数的),用应用服务器本身的机制其实也不错的。

 

实际上,以上的这些方案我们都用过,在发展的不同阶段,有不同的解决方案,现在几乎每种方案都还有应用在使用,这也是具体情况具体分析。

在这几个发展时期,都有应用遗留下来,怎么维护?应用之间需要协同,需要同时理解这些cookie啊,session啊啥的,怎么新增内容,修改内容?我们得为每个解决方案提供adapter,太累了!

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics