第六天-《企业应用架构模式》-会话状态

1. 无状态的价值:

无状态能够仅用不多的对象就能够处理不少的用户,空闲状态的用户越多,无状态服务器就越有用web

2. 会话状态:

相关性:会话状态只与当前会话有关,它存在于业务事务中,与其余会话及他们的业务事务是分开的;数据库

与记录数据信息的区别:记录数据时长期保存在数据库中的持久化数据,它对全部会话可见,会话状态须要提交成为数据库中的记录;安全

最大问题:出如今处理隔离性的时候(同时操做,或者相关联操做)服务器

不能把会话中全部数据都当作是会话状态cookie

3. 存储会话状态的方法:

1)存储会话状态的3种方法:

客户会话状态:在客户端保存数据(在web中可用url、cookie、hidden域等)网络

适用场景:会话数据较少、用户常常取消会话(如B2C用户直接关闭站点消失)url

问题:安全性、完整性代理

服务器会话状态:在服务器内存、文件系统、一张简单的数据库表(以会话标识号为key、以已序列化对象为值)对象

优势:容易直接访问会话状态事务

数据库会话状态:在服务器端存储(将数据分解为多个表和域)

优势:状态持久化不易丢失

问题:隔离性差(须要将会话数据与记录数据相隔离)

以上3种模式并不相互排斥,能够混合使用。使用时,还须要注意:客户机崩溃、服务器死掉、网络链接断掉

2)会话扩容:

会话迁移:容许一次会话从一台服务器转移到另外一台服务器,从而能够有一台服务器处理一个请求,其余服务器处理其余请求

优势:可均衡服务器

缺点:难以找到会话状态,难以支持会话迁移

服务器亲和:某次特定会话的全部请求只能由一台服务器处理

缺点:当客户端有使用代理是,可能会有大量负载集中在某台服务器上

相关文章
相关标签/搜索