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

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:23   990   0

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,太累了!

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP