gpt4 book ai didi

java - 关于Weblogic服务器集群环境的一个问题

转载 作者:搜寻专家 更新时间:2023-10-31 20:15:54 24 4
gpt4 key购买 nike

我正在使用 Weblogic 10g 集群环境来部署我的应用程序。在我的应用程序中,我使用了一个类 Cache.java懒惰地从数据库加载一些属性。这就是它的工作原理。 Cache.java是一个以实例变量作为缓存对象的单例类。例如,其中一个实例变量是 List<String> STORES_IN_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;
}
}

我的问题是,为了获取缓存 STORES_IN_CITY,需要多次调用数据库。我相信这是因为集群环境,对于每个服务器,都有一个不同的 JVM 实例和一个缓存副本。因此,根据在运行时为请求命中哪个服务器,进行数据库调用。我想跨服务器有一个缓存。这可能吗?

我希望我已经详细说明了我的问题。如果需要任何进一步的解释,请告诉我。

谢谢,悉达多

最佳答案

(...) I believe this is because of the clustered environment, as for each server, there is a different JVM instance and a copy of cache.

这是正确的。

I want to have a single cache across servers. Is this possible?

您可以实现 weblogic.cluster.singleton.SingletonService(单例服务是在托管服务器上运行的服务,一次只能在集群的一个成员上使用).

资源

相关问题

关于java - 关于Weblogic服务器集群环境的一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4224033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com