博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第六天-《企业应用架构模式》-会话状态
阅读量:5998 次
发布时间:2019-06-20

本文共 677 字,大约阅读时间需要 2 分钟。

1. 无状态的价值:

无状态可以仅用很少的对象就可以处理很多的用户,空闲状态的用户越多,无状态服务器就越有用

2. 会话状态:

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

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

最大问题:出现在处理隔离性的时候(同时操作,或者相关联操作)

不能把会话中所有数据都看成是会话状态

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

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

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

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

问题:安全性、完整性

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

优点:容易直接访问会话状态

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

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

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

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

2)会话扩容:

会话迁移:允许一次会话从一台服务器转移到另一台服务器,从而可以有一台服务器处理一个请求,其他服务器处理其他请求

优点:可均衡服务器

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

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

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

转载地址:http://omzmx.baihongyu.com/

你可能感兴趣的文章
php程序员转java程序员之痛
查看>>
android 静音的问题
查看>>
mORMot 使用基础
查看>>
jQuery Html控件基本操作(非常实用)
查看>>
oracle删除正在连接的用户,解除锁定的表
查看>>
js判断闰年函数
查看>>
Selenium网页数据抓取
查看>>
Caffe训练脚本中小注释
查看>>
springMVC实现上传文件功能
查看>>
第一个Tornado应用例子Poemmaker
查看>>
perl获取机器ip
查看>>
iOS面试题目集锦
查看>>
SugarCRM - 如何修改Accounts导航栏
查看>>
webstorm 注册码,这个可以用
查看>>
TemplateMethod模式
查看>>
让网络虚拟化成为一种习惯-软件定义的网络技术更新
查看>>
Camera Ripple
查看>>
spring在SSH框架中的作用
查看>>
How to make auto resizing the view?
查看>>
Android Multimedia框架总结(六)C++中MediaPlayer的C/S架构
查看>>