IBM 大型Servlet编程模型 策略 思考

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 中工作。

IBM 大型Servlet编程模型 策略 思考
这里只讨论WebSphere 的策略 其它讨论请另开贴讨论