Рубрики
Без рубрики

Кешируйте свой JHipster кофеином

Привет, мои коллеги-хипстеры, хипстер не мог бы быть шумихой, если бы мы часто не добавляли лучшие функции. сегодня я… С тегами hipster, cache, java, spring.

Привет, мои коллеги-хипстеры, хипстер не мог бы быть шумихой, если бы мы часто не добавляли лучшие функции. Сегодня я хотел бы представить вам новую опцию кэширования в Hipster под названием Caffeine. Я понимаю, как вам может не терпеться узнать все об этом, но сохраняйте спокойствие, пейте кофе и наслаждайтесь.

Кто такой Кэффи?

Caffeine – это кэш-решение для повышения производительности ваших приложений. Согласно официальному проекту Github:

Кофеин предоставляет кэш в памяти с использованием API, вдохновленного Google Guava. Улучшения основаны на нашем опыте проектирования Тайник с гуавой и Concurrentlink HashMap .

Проект насчитывает 27 участников и более 6 тысяч звезд на Github. Первая версия была выпущена в марте 2015 года.

К счастью для нас, доступна реализация Spring cache .

Узнайте больше по адресу https://github.com/ben-manes/caffeine

Зачем использовать кэш?

Использование кэша для меня просто необходимо. С JHipster мы всегда придаем большое значение такого рода решениям . Эффективное использование кэша значительно улучшит вашу производительность, особенно когда вам необходимо извлекать данные, которые обновляются не так часто.

Как использовать кофеин с хипстером

Как обычно, мы сделали его простым в использовании для вас. Вам просто нужно обновить свой Hipster до последней версии и начать создавать проект. На вопрос об абстракции spring cache доступен новый ответ:

Как вы можете видеть, кофеин предназначен для локального кэша с одним узлом, это означает, что вы не должны выбирать его, если вам нужно масштабировать свое приложение, особенно с микросервисами. Кофеин является альтернативой EhCache, поэтому код, сгенерированный с помощью обоих вариантов, довольно близок.

Как вам нравится ваш кофе?

Так же, как и другие кэши с JHipster, вы можете легко настроить его. Конфигурация кэша доступна в следующем классе: your_package.config. Конфигурация кэша.

public CacheConfiguration(JHipsterProperties jHipsterProperties) {
    JHipsterProperties.Cache.Caffeine caffeine = jHipsterProperties.getCache().getCaffeine();

    CaffeineConfiguration caffeineConfiguration = new CaffeineConfiguration();
    caffeineConfiguration.setMaximumSize(OptionalLong.of(caffeine.getMaxEntries()));
    caffeineConfiguration.setExpireAfterWrite(OptionalLong.of(TimeUnit.SECONDS.toNanos(caffeine.getTimeToLiveSeconds())));
    caffeineConfiguration.setStatisticsEnabled(true);
    jcacheConfiguration = caffeineConfiguration;
}

Как мы можем видеть, мы можем настроить как параметры maximum_size, так и expire_after_write. Эти два значения параметра загружаются из свойств JHipster. Вы можете изменить эти значения, перейдя в application-dev.yml или application-prod.yml.

jhipster:
  cache: # Cache configuration
    caffeine: # Caffeine configuration
      time-to-live-seconds: 3600 # By default objects stay 1 hour in the cache
      max-entries: 100 # Number of objects in each cache entry

Больше кофеина, пожалуйста, пожалуйста

Если вы хотите создать больше кэшей для своих элементов в конфигурации кэша, у вас есть два способа: сделай сам (сделай сам) или с помощью great entities generation с помощью JDL. Для этой статьи я выбираю второй способ (конечно, вы сделали то же самое).

Эта часть на самом деле не связана с кофеином, Spring Cache предлагает отличный уровень абстракции, поэтому вы можете иметь аналогичную часть с EhCache (например).

Вот моя простая конфигурация JDL:

entity Region {
    regionName String
}

entity Country {
    countryName String
}

relationship OneToOne {
    Country{region} to Region
}

Давайте импортируем его в наше приложение: импорт jhipster-jdl my_jdl.jh

Теперь созданы наши новые классы. Давайте взглянем на конфигурацию кэша:

createCache(cm, com.mycompany.myapp.domain.Region.class.getName());
createCache(cm, com.mycompany.myapp.domain.Country.class.getName());

Здесь Hipster добавляет новый кэш, определенный именем сущности, в Spring CacheManager. Единственное, что нам нужно сделать, это сообщить Spring, где мы хотим использовать кэш. Давайте создадим новый запрос в репозитории страны:

@Cacheable("com.mycompany.myapp.repository.Country")
Country findCountriesByCountryNameIsStartingWith(String countryNameStarter);

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

Вывод

Использование кэша – это реальный способ повысить производительность и избежать перегрузки вашей базы данных. В Hipster мы всегда фокусируемся на проблемах производительности, и именно поэтому нам нужны лучшие решения для кэширования для наших пользователей. Кофеин теперь предлагается Hipster в качестве кэша решений.

Особая благодарность Судхараке Паламакумбуре , которая сделала пиар для интеграции кофеина. Если вы хотите, как Судхарака, помочь проекту развиваться, заходите на Github project .

Оригинал: “https://dev.to/avdev4j/cache-your-jhipster-with-caffeine-43on”