[英]A question on clustered environment on Weblogic server
我正在使用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實例和一個緩存副本。 因此,根據在運行時針對請求命中的服務器,將進行數據庫調用。 我希望跨服務器有一個緩存。 這可能嗎?
我希望我已經詳細闡述了我的問題。 如果需要進一步說明,請告訴我。
謝謝,Siddharth
(...)我認為這是因為集群環境,對於每個服務器,都有一個不同的JVM實例和一個緩存副本。
這是對的。
我希望跨服務器有一個緩存。 這可能嗎?
您可以實現weblogic.cluster.singleton.SingletonService
( 單件服務是在受管服務器上運行的服務,一次只能在集群的一個成員上使用 )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.