Масштабирование EhCache - PullRequest
       32

Масштабирование EhCache

3 голосов
/ 08 сентября 2010

В настоящее время я создаю приложение, которое должно быть масштабируемым, и поэтому меня интересует распределенное кэширование, а не реплицированное кэширование. Мы будем использовать memcache для общих случаев использования кэша.

Однако Hibernate и Spring Security ACL полагаются на EhCache, который, похоже, не имеет той же схемы репликации, что и memcache, и меня беспокоит логика аннулирования.

Мои серверы приложений должны быть без состояний, чтобы хорошо масштабироваться, и мне интересно, нужно ли мне запускать Hibernate и Acl на memcache или они только хранят временные данные?

Спасибо за вашу помощь.

Nicolas.

Ответы [ 2 ]

4 голосов
/ 09 сентября 2010

В настоящее время я создаю приложение, которое должно быть масштабируемым, и поэтому меня интересует распределенное кэширование, а не реплицированное кэширование.

Не могли бы вы уточнить? Что заставляет вас думать, что реплицированное кэширование не масштабируется? И в какой момент?

Однако Hibernate и Spring Security ACL полагаются на EhCache, который, похоже, не имеет той же схемы репликации, что и memcached, и меня беспокоит логика аннулирования.

Hibernate использует EhCache в качестве по умолчанию Поставщик кэша L2, но провайдеры кэша L2 являются подключаемыми.

Что касается ваших проблем, еще раз, пожалуйста, уточните:

  • что вы собираетесь кешировать точно?
  • Какие стратегии кэширования вам необходимо поддерживать (только для чтения? Нестрогие-чтение-запись? Чтение-запись? Транзакция?
  • почему ты беспокоишься? Вы что-нибудь измеряли? какой-нибудь отрицательный отзыв откуда-то?

Мои серверы приложений должны быть без состояний для хорошего масштабирования, и мне интересно, нужно ли мне запускать Hibernate и Acl на memcache или они только хранят временные данные?

Кэширование не делает вас состоящим. Извините, но я не понимаю ваши вопросы.

И хотя представляется возможным использовать memcached в качестве поставщика кэша L2 для Hibernate, memcached не имеет только преимуществ (официально не поддерживается, это удаленный кеш, что означает, что вы всегда отправляете вещи поверх провод, я даже не знаю какие стратегии он поддерживает).

Я думаю, вы должны уточнить ваши требования и ваши проблемы. В его нынешнем состоянии я не понимаю все, что вы написали.

И, кстати, я могу вам сказать, что EhCache довольно хорошо масштабируется, я использовал его на «большом» кластере из 24+ узлов без проблем (конечно, «большой» относительный, но это кажется приличным).

0 голосов
/ 08 сентября 2010

Вы не обязаны использовать какую-либо одну реализацию кеша.Хотя Ehcache является де-факто для Spring, вы можете легко подключить другой CacheManager для memcached и использовать его вместо этого.Вы также можете написать свой собственный MethodSecurityInterceptor, чтобы выполнить произвольную логику кэширования / аннулирования.Основные классы Spring Security приведены в качестве руководства, но на самом деле работают только для их очень общего случая - я часто нахожу, что мне приходится писать собственные реализации для пользовательской логики приложения.

...