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

我们系统有一些数据需要缓存, 我(小兵)建议将这些数据存放在应用服务器上, 而有一个"大牛"则说应该缓存在HTTPSession(WEB服务器)上, 说这样是为了减少服务器之间的通讯负载, 可以直接从WEB服务器上取数. 我提出疑惑,
"数据缓存在HTTPSession中,那Session复制不也一样会造成服务器之间的通讯负载?"
大牛说, "不会, 因为一个客户在A机器上登录后, 它以后的请求都会发往A机器, 所以不需要Session复制, 将Session复制禁用即可"(不考虑断电)
我也很是疑惑, 想请教一下板桥大哥, 像缓存数据存储在WEB服务器上好,还是应用服务器上好, 为什么呐? 又或者是它们有不同的适用范围?
[该贴被admin于2009-03-16 09:44修改过]

缓存生命周期划分种类有:
1. request级别的,比如Hibernate的Session级别一级缓存
2. Session级别的,和客户端有关。
3. Application级别的,和应用有关,替代数据库,不是很重要数据,可从数据库再生的。
4. 永恒的,决定业务整体状态的缓存,需要服务器之间复制的,很重要的,必须经常flush到数据库。

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