2016-10-26 73 views
0

我已經設置了一個使用磁盤存儲緩存一些文件的ehcache。這是行得通的,我可以看到磁盤上創建的緩存文件,但我想在terracotta服務器中也有這種行爲,所以緩存可以被多個客戶端訪問。如何查看兵馬俑服務器是否正在使用磁盤存儲?

我已經安裝了兵馬俑服務器,調整了ehcache配置,我可以看到緩存正在工作,但我不確定它是使用內存還是磁盤。我只想爲這個緩存使用磁盤。

我也得到了一些警告,像這樣的:WARN - Asking for a large amount of memory: 26179740 bytes

兵馬俑配置:

<servers> 
    <mirror-group> 
     <server host="localhost" name="localhost" > 
     <data>/opt/terracotta/data</data> 
     <tsa-port>9510</tsa-port> 
     <management-port>9540</management-port> 
     <tsa-group-port>9530</tsa-group-port> 
     <dataStorage size="2g"> 
      <offheap size="100m"/>    
      <hybrid/> 
     </dataStorage>   
     <logs>stdout:</logs> 
     </server> 
</mirror-group> 

我編程方式配置了Ehcache,我敢肯定,下面的配置是錯誤的,但也許接近需要什麼。

TerracottaConfiguration config = new TerracottaConfiguration() 
       .clustered(true) 
.compressionEnabled(true); 

Cache httpCache = new Cache(new CacheConfiguration() 
       .name(HTTP_CACHE) 
       .maxEntriesLocalHeap(1)    
       .memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LRU) 
       .diskExpiryThreadIntervalSeconds(Properties.CACHE_HTTP_EXPIRY) 
       .persistence(new PersistenceConfiguration().strategy(PersistenceConfiguration.Strategy.DISTRIBUTED)) 
.terracotta(config)); 
+0

請發表Terracotta服務器和Ehcache配置,否則無法提供幫助。 –

+0

感謝您的回覆,我更新了這個問題。我的配置可能仍然是完全錯誤的,這就是爲什麼我想知道我在找什麼(可能是數據目錄中的緩存文件) –

+0

您可以添加版本嗎?您是否也計劃只使用開源功能或商業功能?對於後者,我強烈建議與官方支持部門取得聯繫。 –

回答

1

鑑於在註釋中給出的配置和版本信息:

  • 開源兵馬俑服務器僅在內存中存儲。

    <dataStorage size="2g"> 
        <offheap size="2g"/> 
    </dataStorage> 
    

    在這個例子中,你有2Gb的數據存儲,都使用offheap。 當然,磁盤上不會有內容。 這意味着如果服務器關閉,所有數據都將丟失。 當然,您可以在一個鏡像組中有兩臺服務器來獲得高可用性。

  • 使用企業功能,您可以有效地將數據保存在磁盤上以啓用可重新啓動功能。

    <dataStorage size="2g"> 
        <offheap size="200m"/> 
        <hybrid/> 
    </dataStorage> 
    

    上面的例子聲明瞭2Gb的存儲空間,其中200Mb將由內存提供,其餘的從磁盤提供。 請注意,爲了具有完整的服務器可重啓性,您需要在每個服務器元素中啓用它:<restartable enabled="true"/>

欲瞭解更多詳情,請參閱product documentation

另請注意,您應該爲客戶端和服務器使用相同的版本。雖然4.3系列支持不同的客戶端和服務器版本,但其目的在於滾動升級,而不是推薦的長時間運行設置。

+0

謝謝,現在有道理。但是,如果ehcache中的磁盤存儲與磁盤存儲類似,但它不會將數據保留在磁盤上,而只使用磁盤,那將非常好。 –