Как узнать, использует ли терракотовый сервер дисковое хранилище?
Я установил ehcache, который использует хранилище дисков для кэширования некоторых файлов. Это работает, и я вижу файл кэша, созданный на диске, но я хочу, чтобы такое поведение также происходило на сервере терракоты, чтобы к нему могли обращаться несколько клиентов.
Я настроил терракотовый сервер, настроил конфигурацию 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));
1 ответ
Учитывая информацию о конфигурации и версии, приведенную в комментариях:
Терракотовый сервер с открытым исходным кодом использует только хранилище в памяти.
<dataStorage size="2g"> <offheap size="2g"/> </dataStorage>
В этом примере у вас есть 2 Гб хранилища данных, все с использованием offheap. И, конечно же, на диске не будет содержимого. Это означает, что если сервер выключен, все данные будут потеряны. Конечно, вы можете иметь два сервера в одной зеркальной группе для обеспечения высокой доступности.
С помощью функции Enterprise вы можете эффективно сохранять данные на диске для возможности перезапуска.
<dataStorage size="2g"> <offheap size="200m"/> <hybrid/> </dataStorage>
В приведенном выше примере объявляется 2 ГБ хранилища, из которых 200 МБ будут обслуживаться из памяти, а остальные - с диска. Обратите внимание, что для полной перезапуска сервера вам необходимо включить его через:
<restartable enabled="true"/>
в каждом элементе сервера.
Для получения более подробной информации обо всем этом, пожалуйста, обратитесь к документации продукта.
Также обратите внимание, что вы должны использовать одинаковые версии для клиента и сервера. Хотя линия 4.3 поддерживает разные версии клиента и сервера, она предназначена для непрерывного обновления и не рекомендуется для длительной установки.