可以肯定的说,集群中不能用servletcontext来保存全局数据,那是肯定不行的。
这个问题,基本上比较复杂,我想到的有这个几个方法,供参考:
1. 用jndi保存数据,存取都用jndi来操作,然后把jndi做集群,bea的底层都是这么干的。
优缺点:比较方便,但是一般不建议存取大量数据。
2. 写在数据库中,每个服务器都在数据库读写这个变量,这样数据的一致性性,更新都能解决。
优缺点:可以存取大量数据,需要改数据结构,还得改程序,比较麻烦,而且速度没法保障,特别象统计在线人数这类全局数据,会频繁访问数据库。
3. 使用一些可以做集群的cache,例如:oscache,jbosscache等等。
优缺点:比较好的解决方法,可以存放大量全局数据,特别象一些常量数据,比如类型数据等等。响应速度非常快。一般现在很多open source的系统都用这些来做全局常量缓存使用。但是,这又是一门新技术,对开发人员要求比较高,需要改造现有代码。
阅读(509) | 评论(0) | 转发(0) |