淘宝的高性能可伸缩架构---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处理的主要内容,如果未能解决你的问题,请参考以下文章

淘宝的高性能可伸缩架构 --- 应用拆分

淘宝的高性能可伸缩架构 --- 非结构数据存储

淘宝处理高并发

淘宝中间件——tair

《可伸缩服务架构:框架与中间件》读书笔记

高可用与可伸缩架构