分布式环境下缓存的数据应该存放在哪儿

08-12-02 icyiwh
我们系统有一些数据需要缓存, 我(小兵)建议将这些数据存放在应用服务器上, 而有一个"大牛"则说应该缓存在HTTPSession(WEB服务器)上, 说这样是为了减少服务器之间的通讯负载, 可以直接从WEB服务器上取数. 我提出疑惑,

"数据缓存在HTTPSession中,那Session复制不也一样会造成服务器之间的通讯负载?"

大牛说, "不会, 因为一个客户在A机器上登录后, 它以后的请求都会发往A机器, 所以不需要Session复制, 将Session复制禁用即可"(不考虑断电)

我也很是疑惑, 想请教一下板桥大哥, 像缓存数据存储在WEB服务器上好,还是应用服务器上好, 为什么呐? 又或者是它们有不同的适用范围?

[该贴被admin于2009-03-16 09:44修改过]

banq
2008-12-02 20:10
缓存生命周期划分种类有:

1. request级别的,比如Hibernate的Session级别一级缓存

2. Session级别的,和客户端有关。

3. Application级别的,和应用有关,替代数据库,不是很重要数据,可从数据库再生的。

4. 永恒的,决定业务整体状态的缓存,需要服务器之间复制的,很重要的,必须经常flush到数据库。

所以,根据情况选择缓存,而不是一味使用session级别。

猜你喜欢