#java #caching #ehcache #terracotta
#java #кэширование #ehcache #terracotta
Вопрос:
Мне нужно настроить мое приложение для переключения с конфигурации сервера Terracotta на DiskStore, когда сервер Terracotta недоступен. Есть ли способ сделать это? Когда я настраиваю элемент terracottaConfig на ehcache.xml Я не могу запустить приложение, если сервер Terracotta был недоступен…. Это мой ehcache.xml конфигурация:
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd" name="gpCacheManager">
<diskStore path="java.io.tmpdir" />
<terracottaConfig rejoin="true">
<tc-config>
<servers>
<server host="XXX.XXX.XXX.XX" name="host1">
</server>
</servers>
<clients>
<logs>app/logs-%i</logs>
</clients>
<nonstop immediateTimeout="true" timeoutMillis="3000">
<timeoutBehavior type="localReads" />
</nonstop>
</tc-config>
</terracottaConfig>
<defaultCache maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="false"
diskPersistent="false" diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<terracotta clustered="true">
<nonstop immediateTimeout="false" timeoutMillis="3000">
<timeoutBehavior type="localReads" />
</nonstop>
</terracotta>
</defaultCache>
<cache name="oxmCache" maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="240" timeToLiveSeconds="240" overflowToDisk="false"
diskPersistent="false" diskExpiryThreadIntervalSeconds="240"
memoryStoreEvictionPolicy="LRU">
<terracotta clustered="true">
<nonstop immediateTimeout="false" timeoutMillis="3000">
<timeoutBehavior type="localReads" />
</nonstop>
</terracotta>
</cache>
</ehcache>
Спасибо!
Ответ №1:
Боюсь, что использование диска (на клиенте) на данный момент не поддерживается. В принципе, если я вас правильно понял, вы хотели бы, чтобы записи передавались на диск, а не на сервер terracotta, когда он недоступен.
Теперь, я полагаю, вы также хотели бы получить согласование, когда сервер вернется, не так ли? Потому что мне трудно понять, насколько полезно иметь (частичные) данные на диске… Не хотите уточнить?
Комментарии:
1. Реальная проблема в том, что я не могу использовать приложение в автономном режиме (без сервера Terracotta). Если есть способ запустить приложение без доступного сервера Terracotta, я обработаю частичные данные на диске для согласования, когда сервер будет доступен…