SpringBoot統合Redis、ApachSolr、SpringSessionの例


この論文ではSprigBoot統合Redis、ApachSolr、SpringSessionを紹介します。
一、概要
SpringBootは登場以来、その便利な配置で多くの開発者に親しまれてきました。それはさまざまなstarterの簡略化された多くの煩雑な構成を提供しています。SpringBoot Druid、Mybatisを統合するのは一般的ですが、ここでは詳しく紹介しません。今日はSpringBootを使ってRedis、ApachSolr、SprigSessionを統合することを紹介します。
二、SpringBoot整合Redis
Redisはみんながよく使うキャッシュの一つで、普通Redisは高くて利用できる(HA)、ClusterまたはSentinelを構築します。具体的な構築方法はRedis公式文書を参照してください。ここではSentinelを例に挙げて、Redis Sentinelを構築するのは一般的に3つのノードであり、Redisのポートは一般的に6379であり、Sentinelのポートは26379である。
我々はSpringBootを使ってRedisを統合します。まず対応するRedisのstarterをPOMに加入します。

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
jarパッケージを導入した後、直接にappication.propertiesファイルにRedisSentinelの配置を追加すれば、統合が完了します。

spring.redis.sentinel.master=mymaster
spring.redis.sentinel.nodes=192.168.2.233:26379,192.168.2.234:26379,192.168.2.235:26379
spring.redis.pool.max-active=1024
spring.redis.pool.max-idle=200
spring.redis.pool.min-idle=100
spring.redis.pool.max-wait=10000
sentine.masterはmasterの名前です。Redis Sentinelを構築する時に使うデフォルトの名前はmmasterです。
sentine.nodesはsentinelのノードであり、注意はsentinelのノードであり、redisのノードではない。ip:ポートのフォーマットで、複数のノードを"で区切ってください。"
以下はいくつかの接続池の情報です。
  • pool.max-active:最大アクティブ数
  • pool.max-indle:最大アイドル数
  • pool.min-indle:最小アイドル数
  • pool.max-wait:最大待ち時間
  • プログラムでは、redisTemplateに直接注入して、Redisを操作します。
    
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    これでRedisの統合が完了しました。
    三、SpringBoot統合SprigSession
    Spring Sessionはコンテナを通過する必要がないクラスタSessionの管理を提供しています。データベース、Redis、MongoDBなど、異なる記憶層にアクセスすることができる。SpringBootとシームレスに結合できます。
    まず、Spring Sessionをプロジェクトに導入し、POMには以下の構成を追加します。
    
    <dependency>
     <groupId>org.springframework.session</groupId>
     <artifactId>spring-session</artifactId>
    </dependency>
    その後、appication.propertiesでSpringSessionの記憶タイプを指定します。
    
    spring.session.store-type=redis
    このように非常に簡単にSpringSessionを統合し、cookieに特別な要求があれば、Spring Bootに代わって自動的に作成されたbeanをプロジェクト中に新たに作成することができます。具体的には以下の通りです
    
        @Bean
     public DefaultCookieSerializer cookieSerializer(){
     DefaultCookieSerializer cookie = new DefaultCookieSerializer();
     cookie.setCookieName("springboot_id");
     return cookie;
     }  
    
    上記の例では、クッキーの名前を修正しました。他の属性を変更する場合は、setに関する属性値を設定してください。
    四、Spring Boot整合Solr
    ApachSolrは比較的一般的な検索エンジンです。SpringBootも簡単にsorを統合できます。みんなの開発に便利です。具体的なAppheSolrの概念と使い方は自分で関連文書を見てください。sorを構築する時、私達は普通はzookeeperを利用してSolCloudを構築してSolrの利用可能性を高めます。ここでSolrCloudを整理します。
    まず、ApachSolrのstarterを紹介します。
    
    <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-solr</artifactId>
    </dependency>
    
    appication.propertiesには、zookeeperの情報が追加されています。以下の通りです。

    spring.data.solr.zk-host=192.168.2.233:2181,192.168.2.234:2181,192.168.2.235:2181
    複数のzookeeperの場合は、「、」で区切られます。
    このように、SprigBootを統合したAacheSolrが完成しました。とても便利ですよね。次に私たちはSpring-dataでソロを訪問することができます。
    1、自分の実体類を作成し、ソロの戻りデータに対応して、具体的なコードは以下の通りである。
    
    @Setter@Getter
    @SolrDocument(solrCoreName = "xy_company")
    public class SolrCompany {
      @Field("id")
      private String id;                 
      @Field("companyName_txt")
      private String companyName;          
    }
    
    @Setter@Getterこの二つの注釈は、get、set方法を生成するのによく使われています。
    @SolrDcument(sorCoreName=「xy_」company')は、このエンティティがsor内のcoreまたはcollectionに対応することを指定するために使用され、collectionは単一のインスタンス中の呼称であり、collectionはSolrCloud中の呼称であり、意味はほぼ同じである。
    @Field(「id」)は、対応するソロのフィールドを指定するために使用されます。
    2、自分の記憶層を作成し、SolCrude Repositoryを引き継ぎ、次のようにする。
    
    public interface CompanyRepository extends SolrCrudRepository<SolrCompany,String> {
      List<SolrCompany> findByCompanyName(String companyName);
    }
    このように、この記憶層はsorにアクセスできます。複数の記憶層が一つのエンティティを共有する場合、複数の記憶層を書き込み、異なるRepositoryを継承することができます。具体的にはSpring-dataを参照してください。
    3、自分の業務でソロを使う
    
     public List<SolrCompany> getCompanyByName(String companyName){
        return companyRepository.findByCompanyName(companyName);
      }
    
    これでSpring Boot統合Solrが完成しました。簡単ですよね。
    次に、MongoDB、Kafkaなどの主流フレームの統合についても紹介します。今回の詳細コードは私のGitHub:https://github.com/bigbugliu/spring-boot-demoを参照してください。
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。