キャッシュをJipsterとカフェイン


私の仲間のヒップスター.
我々は頻繁にトップの機能を追加しない場合Jipsterは誇大広告できませんでした.今日はJaffsterの新しいキャッシュオプションを紹介します.私は、あなたがこれについてすべてを知っているが、穏やかにして、コーヒーを飲んで、楽しむことができない方法を理解します.

カフ?


カフェインは、アプリケーションのパフォーマンスを高めるためのキャッシュソリューションです.公式Githubプロジェクトによると

Caffeine provides an in-memory cache using a Google Guava inspired API. The improvements draw on our experience designing Guava’s cache and ConcurrentLinkedHashMap.


プロジェクトは27人の貢献者とGithubで6 K以上の星を数えます.最初のバージョンは2015年3月にリリースされました.
我々のために幸運にSpring cache 実装が可能です.
もっと学ぶhttps://github.com/ben-manes/caffeine

なぜキャッシュを使用するか?


キャッシュを使用する必要があります.Jipipsterと我々は常にこの種の重要性を与えるsolutions . 効率的にキャッシュを使用すると、特に頻繁に更新されていないデータを取得する必要がある場合、多くのパフォーマンスを向上させます.

カフェインをJipsterで使う方法


いつものように、我々はそれを簡単にあなたのために使用している.あなただけの最後のバージョンにJipsterを更新し、プロジェクトの生成を開始する必要があります.スプリングキャッシュの抽象化の質問では、新しい答えが利用可能です.

カフェインは、単一のノードを持つローカルキャッシュ用であることがわかります.これは、特にマイクロサービスを使用してアプリケーションをスケールアップする必要がある場合は、選択しないでください.カフェインはehcacheの代替手段であるので、両方のオプションで生成されたコードはかなり近いです.

コーヒーはいかがですか。


Jipsterで他のキャッシュと同じように簡単に設定できます.
キャッシュ構成は次のクラスで使用できます.設定.CacheConfiguration
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;
}
我々が見ることができるように、我々は両方のMaximumCountサイズとExpireThank後の書き込みオプションを調整することができます.この2つのオプション値はJipsterプロパティから読み込まれます.
これらの値をアプリケーション- dev . ymlまたはApplication - Project . 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

カフェイン


キャッシュ構成であなたのアイテムのためにより多くのキャッシュを作成するならば、あなたは2つの方法を持っています:DIY(それをあなた自身でしてください)またはJDLで大きな実体世代を使用すること.
この記事の第2の方法(もちろん、あなたは同じことをしました)を選びます.
この部分は実際にカフェインに関連していない、春のキャッシュは、偉大な抽象化層を提供しています、それはあなたがehcache(例えば)と同様の部分を持つことができる理由です.
簡単なJDL設定があります.
entity Region {
    regionName String
}

entity Country {
    countryName String
}

relationship OneToOne {
    Country{region} to Region
}
私たちのアプリケーションにインポートしてみましょう:JipHipster輸入JDLマイセンJDL.JH
私たちの新しいクラスが作成されます.キャッシュ設定を見てみましょう.
createCache(cm, com.mycompany.myapp.domain.Region.class.getName());
createCache(cm, com.mycompany.myapp.domain.Country.class.getName());
ここで、JipPsterは、春のCachemanagerでエンティティ名で定義された新しいキャッシュを追加します.我々がしなければならない唯一のことは、我々がキャッシュを使いたい春に伝えることです.
新しいリポジトリを作成しましょう
@Cacheable("com.mycompany.myapp.repository.Country")
Country findCountriesByCountryNameIsStartingWith(String countryNameStarter);
それで、私が同じパラメタでこのメソッドを呼ぶたびに、私の倉庫から、値が以前に検索されたならば、私はキャッシュから値を得ます.私たちのキャッシュが正常に構成され、使用されます.

結論


キャッシュを使用するとパフォーマンスを向上させ、あなたのデータベースを過負荷を避けるための本当の方法です.JipHipsterで我々は常にパフォーマンスの問題に焦点を当て、我々はユーザーのための最善のキャッシュソリューションを必要とする理由です.
カフェインは、ソリューションキャッシュとしてJipsterで提供されます.
誰が、カフェインを統合するPRをしたかに感謝します.閉じるこの動画はお気に入りから削除されていますGithub project .