淘宝的高性能可伸缩架构---session处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了淘宝的高性能可伸缩架构---session处理相关的知识,希望对你有一定的参考价值。
应用无状态
原来
假如在session 保存大量的客户端状态信息,
保存session的服务器宕机, 通过集群解决,
集群不仅有负载均衡, 更重要的是要恢复 failover
问题
tomcat 用集群节点广播复制, jboss用配对复制 等session状态复制策略有局限
会严重影响系统的伸缩性
因为集群节点间 session通信随着节点的增多而开销增大
解决1
因此要做到应用本身的伸缩性, 就要保证应用无状态
实现1
淘宝的session框架用clientcookie实现
将状态转移到cookie里面,
cookie有限制, 每个不大于4k, 一个站点最多保存20个cookie
淘宝的cookie框架是 ‘多值cookie‘, 一个组合键对应多个cookie值,
可以防止数量超过20个, 充分利用每个cookie的储存空间
解决2
利用集中session 管理 + 数据库
实现2
多个无状态的 server 连接到一个集中session服务器,
session服务器将session保存到缓存中, session服务器后端再配合
底层持久性数据源, 比如数据库, 文件系统等等
以上是关于淘宝的高性能可伸缩架构---session处理的主要内容,如果未能解决你的问题,请参考以下文章