SpringBoot+Redis Settings HA実現

1375 ワード

まずこれを見て、それから簡単にマスターとslaveを作ります.そして順番に起動します.https://redis.io/topics/replication実はslaveeofを構成し、requirepassとmaster-authをそれぞれ構成します.
これを見終わったら、https://redis.io/topics/sentinel次に(ベストプラクティスは3つ以上の奇数個)哨兵サービスを開始し、使用可能なプロファイルは以下の通りです.
Sentinal構成
bind 0.0.0.0
port 5000    #Sentinel      
daemonize yes
logfile "/var/log/redis/sentinel.log"
sentinel monitor mymaster 127.0.0.1 6379 1  # Quorum    /2        ,   1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel auth-pass mymaster toor  # Redis     

次いで、tailf /var/log/redis/sentinel.logによって、サービスのプライマリ・スタンバイ切り替えおよび様々な状態などが観察される.
応用面では、SpringBootの構成は以下の通り.
spring.redis.database=0
spring.redis.password=toor
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.pool.max-active=8
spring.redis.pool.max-wait=-1
spring.redis.sentinel.master=mymaster
spring.redis.sentinel.nodes=127.0.0.1:5000  #       Sentinel       

そして正常にRedisTemplateで操作すればいいです.
Redis_6379(プライマリサービス)が切れるとsentinelがRedis_6380はMasterとして起動し、これはsentinelのログから観察できる.それからSpringBoot側は、Created JedisPool to masterのような情報が新しいMasterに再接続され、failoverの切り替えが完了します.
に続く
CLIで6380サービスにログインし、slaveeofのコマンドをキャンセルし(さすがにこの時点でマスターなのか)、6379をslaveとして再起動すればよいので、次の6380が切れたら、6379はMasterとしてサービスを提供し続けます.