В настоящее время я создаю приложение, которое должно быть масштабируемым, и поэтому меня интересует распределенное кэширование, а не реплицированное кэширование.
Не могли бы вы уточнить? Что заставляет вас думать, что реплицированное кэширование не масштабируется? И в какой момент?
Однако Hibernate и Spring Security ACL полагаются на EhCache, который, похоже, не имеет той же схемы репликации, что и memcached, и меня беспокоит логика аннулирования.
Hibernate использует EhCache в качестве по умолчанию Поставщик кэша L2, но провайдеры кэша L2 являются подключаемыми.
Что касается ваших проблем, еще раз, пожалуйста, уточните:
- что вы собираетесь кешировать точно?
- Какие стратегии кэширования вам необходимо поддерживать (только для чтения? Нестрогие-чтение-запись? Чтение-запись? Транзакция?
- почему ты беспокоишься? Вы что-нибудь измеряли? какой-нибудь отрицательный отзыв откуда-то?
Мои серверы приложений должны быть без состояний для хорошего масштабирования, и мне интересно, нужно ли мне запускать Hibernate и Acl на memcache или они только хранят временные данные?
Кэширование не делает вас состоящим. Извините, но я не понимаю ваши вопросы.
И хотя представляется возможным использовать memcached в качестве поставщика кэша L2 для Hibernate, memcached не имеет только преимуществ (официально не поддерживается, это удаленный кеш, что означает, что вы всегда отправляете вещи поверх провод, я даже не знаю какие стратегии он поддерживает).
Я думаю, вы должны уточнить ваши требования и ваши проблемы. В его нынешнем состоянии я не понимаю все, что вы написали.
И, кстати, я могу вам сказать, что EhCache довольно хорошо масштабируется, я использовал его на «большом» кластере из 24+ узлов без проблем (конечно, «большой» относительный, но это кажется приличным).