|
HttpSession的每一次使用都是第三层关系型数据库上的一个事务。事务是在HttpServletRequest.getSession()方法被调用时开始的。事务在 servlet 的service()方法结束时终止,或当在 WebSphere 中实现HttpSession的类上调用sync()方法时终止。 存储的压力多大. 内存数据库也许比较合适,相对来讲,数据的生命周期 绑定在session上,数据量不会很大,但是很频繁.
在线用户100万人/小时*1M =100M 当然也可以更小 100K 这个已经是cookies的25倍了
2000万人/天*1M = 2G 缩小后 200M
每秒 用户数约 300人
在线用户操作 300人/秒*100次= 30000次/秒 读写数据库 =30次/毫秒 读写数据库
到底读写一次数据库需要多少毫秒了?而且还是要支持事物的,放宽点要求不支持事物客户也能忍受,丢掉了在加好了,毕竟session也并不一定能保证不丢失数据呵呵.
关键的问题:1.一次读写数据时间
2.丢失率
3.100并发下的排队平均时间
图 2. 共享的HttpSessions在 WebSphere 中工作。
原文: http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0011_brown/
这里只讨论WebSphere 的策略 其它讨论请另开贴讨论 |
|
|