Java Weblogic服务器集群环境的一个问题
我正在使用Weblogic 10g群集环境部署我的应用程序。在我的应用程序中,我使用了一个类Java Weblogic服务器集群环境的一个问题,java,weblogic,Java,Weblogic,我正在使用Weblogic 10g群集环境部署我的应用程序。在我的应用程序中,我使用了一个类Cache.java从数据库惰性地加载一些属性。这就是它的工作原理
Cache.java
从数据库惰性地加载一些属性。这就是它的工作原理List STORES\u IN\u CITY
。群集启动时,此缓存为空。实际值在数据库中。该类的实现如下所示:
public class Cache
{
private List<String> STORES_IN_CITY;
private static final Cache cache=new Cache();
public static Cache getCache()
{
return cache;
{
private Cache()
{
// private constructor to have singleton class
}
public List<String> getStoresInCity()
{
if(null==STORES_IN_CITY || STORES_IN_CITY.size()==0){
STORES_IN_CITY=getStoresFromDatabase();
}
return STORES_IN_CITY;
}
}
公共类缓存
{
城市中的私人列表商店;
私有静态最终缓存=新缓存();
公共静态缓存getCache()
{
返回缓存;
{
专用缓存()
{
//私有构造函数具有单例类
}
公共列表getStoresInCity()
{
if(null==STORES_IN|u CITY | STORES_IN_CITY.size()==0){
STORES_IN_CITY=getStoresFromDatabase();
}
返回城市的门店;
}
}
我这里的问题是,有多个对数据库的调用来获取城市中的缓存存储。我相信这是因为集群环境,对于每个服务器,都有一个不同的JVM实例和一个缓存副本。因此,根据运行时请求命中的服务器,会进行数据库调用。我希望有一个跨服务器缓存。这可能吗
我希望我已经对我的问题做了充分的阐述。如果需要进一步的解释,请让我知道
谢谢,
悉达思
(…)我相信这是因为集群环境,对于每个服务器,都有一个不同的JVM实例和一个缓存副本
这是正确的
我希望在服务器之间有一个缓存。这可能吗
您可以实现weblogic.cluster.singleton.SingletonService
(singleton服务是在托管服务器上运行的服务,一次只能在集群的一个成员上使用)
资源