国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

更多QQ空间微信QQ好友腾讯朋友复制链接
您的位置:首頁(yè)/技術(shù)文章
文章詳情頁(yè)

SpringBoot結(jié)合Redis哨兵模式的實(shí)現(xiàn)示例

【字号: 作者:豬豬瀏覽:60日期:2023-05-22 08:57:49

Redis哨兵模式

Redis Sentinel介紹

Redis Sentinel是Redis高可用的實(shí)現(xiàn)方案。Sentinel是一個(gè)管理多個(gè)Redis實(shí)例的工具,它可以實(shí)現(xiàn)對(duì)Redis的監(jiān)控、通知、自動(dòng)故障轉(zhuǎn)移。

Redis Sentinel主要功能

Redis 的 Sentinel 系統(tǒng)用于管理多個(gè) Redis 服務(wù)器(instance), 該系統(tǒng)執(zhí)行以下三個(gè)任務(wù):

監(jiān)控(Monitoring):Sentinel 會(huì)不斷地檢查你的主服務(wù)器和從服務(wù)器是否運(yùn)作正常。 提醒(Notification):當(dāng)被監(jiān)控的某個(gè) Redis 服務(wù)器出現(xiàn)問(wèn)題時(shí), Sentinel 可以通過(guò) API 向管理員或者其他應(yīng)用程序發(fā)送通知。 自動(dòng)故障遷移(Automatic failover):當(dāng)一個(gè)主服務(wù)器不能正常工作時(shí), Sentinel 會(huì)開(kāi)始一次自動(dòng)故障遷移操作, 它會(huì)將失效主服務(wù)器的其中一個(gè)從服務(wù)器升級(jí)為新的主服務(wù)器, 并讓失效主服務(wù)器的其他從服務(wù)器改為復(fù)制新的主服務(wù)器; 當(dāng)客戶(hù)端試圖連接失效的主服務(wù)器時(shí), 集群也會(huì)向客戶(hù)端返回新主服務(wù)器的地址, 使得集群可以使用新主服務(wù)器代替失效服務(wù)器。

Redis Sentinel部署

SpringBoot結(jié)合Redis哨兵模式的實(shí)現(xiàn)示例 SpringBoot結(jié)合Redis哨兵模式的實(shí)現(xiàn)示例

Redis集群配置

Redis集群?jiǎn)?dòng)

復(fù)制3個(gè)reids.conf配置文件

cp redis.conf /home/redis/redis6379.confcp redis.conf /home/redis/redis6380.confcp redis.conf /home/redis/redis6381.conf

修改reids.conf配置文件,以6379配置為例

vim redis6379.conf#啟用后臺(tái)啟動(dòng)daemonize yes#pidfile位置pidfile '/home/redis/6379/redis6379.pid'#端口port 6379#日志文件位置logfile '/home/redis/6379/log6379.log'#rdb備份文件名稱(chēng)dbfilename 'dump6379.rdb'#rdb備份文件路徑dir '/home/redis/rdb/'

修改redis-slave配置文件,修改和master如上配置,6380、6381配置文件,新增如下

slaveof 192.168.126.200 6379

先啟動(dòng)master服務(wù),在啟動(dòng)slave服務(wù)

master節(jié)點(diǎn)服務(wù)./redis-cli -p 6379127.0.0.1:6379> info replication# Replicationrole:masterconnected_slaves:2slave0:ip=192.168.126.200,port=6380,state=online,offset=975350,lag=1slave1:ip=192.168.126.200,port=6381,state=online,offset=975350,lag=1master_repl_offset:975495repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:2repl_backlog_histlen:975494slave節(jié)點(diǎn)服務(wù)./redis-cli -p 6380# Replicationrole:slavemaster_host:192.168.126.200master_port:6379master_link_status:upmaster_last_io_seconds_ago:0master_sync_in_progress:0slave_repl_offset:989499slave_priority:100slave_read_only:1connected_slaves:0master_repl_offset:0repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0

sentinel集群配置

編寫(xiě)sentinel配置文件,master配置

touch sentinel1.confvim sentinel1.conf#Sentinel節(jié)點(diǎn)的端口port 26379dir '/home/redis/sentinel'daemonize yeslogfile 'sentinel-26379.log'#當(dāng)前Sentinel節(jié)點(diǎn)監(jiān)控 127.0.0.1:6379 這個(gè)主節(jié)點(diǎn)#代表判斷主節(jié)點(diǎn)失敗至少需要2個(gè)Sentinel節(jié)點(diǎn)節(jié)點(diǎn)同意#mymaster是主節(jié)點(diǎn)的別名sentinel monitor mymaster 192.168.126.200 6380 2#每個(gè)Sentinel節(jié)點(diǎn)都要定期PING命令來(lái)判斷Redis數(shù)據(jù)節(jié)點(diǎn)和其余Sentinel節(jié)點(diǎn)是否可達(dá),如果超過(guò)30000毫秒且沒(méi)有回復(fù),則判定不可達(dá)sentinel down-after-milliseconds mymaster 30000#當(dāng)Sentinel節(jié)點(diǎn)集合對(duì)主節(jié)點(diǎn)故障判定達(dá)成一致時(shí),Sentinel領(lǐng)導(dǎo)者節(jié)點(diǎn)會(huì)做故障轉(zhuǎn)移操作,選出新的主節(jié)點(diǎn),原來(lái)的從節(jié)點(diǎn)會(huì)向新的主節(jié)點(diǎn)發(fā)起復(fù)制操作,限制每次向>新的主節(jié)點(diǎn)發(fā)起復(fù)制操作的從節(jié)點(diǎn)個(gè)數(shù)為1sentinel leader-epoch mymaster 1#故障轉(zhuǎn)移超時(shí)時(shí)間為180000毫秒sentinel failover-timeout mymaster 180000#同理創(chuàng)建修改sentinel2.conf、sentinel3.conf配置文件

啟動(dòng)3臺(tái)sentinel服務(wù)

./redis-sentinel /home/redis/sentinel1.conf./redis-sentinel /home/redis/sentinel2.conf./redis-sentinel /home/redis/sentinel3.conf

SpringBoot結(jié)合Redis哨兵模式

創(chuàng)建SpringBoot項(xiàng)目,添加依賴(lài)

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId></dependency><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency><!--redis連接池--><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId></dependency>

核心配置文件application.yml

server: port: 80spring: redis: lettuce: pool: # 連接池最大連接數(shù)(使用負(fù)值表示沒(méi)有限制) 默認(rèn)為8 max-active: 8 # 連接池中的最大空閑連接 默認(rèn)為8 max-idle: 8 # 連接池最大阻塞等待時(shí)間(使用負(fù)值表示沒(méi)有限制) 默認(rèn)為-1 max-wait: -1ms # 連接池中的最小空閑連接 默認(rèn)為 0 min-idle: 0 sentinel: # 主節(jié)點(diǎn)的別名 master: mymaster # sentinel服務(wù)的ip和端口 nodes: 192.168.126.200:26379,192.168.126.200:26380,192.168.126.200:26381

程序調(diào)用

@RestController@RequestMapping('/redis')public class RedisController { // 使用SpringBoot封裝的RestTemplate對(duì)象 @Autowired RedisTemplate<String, String> redisTemplate; @RequestMapping('/get') public String get(String key) { String value = redisTemplate.opsForValue().get(key); return value; } @RequestMapping('/set') public String set(String key, String value) { redisTemplate.opsForValue().set(key, value); return 'success'; }}

模擬故障

手動(dòng)shutdown redis的master服務(wù)后,后臺(tái)會(huì)嘗試重連,當(dāng)超過(guò)最大等待時(shí)間,無(wú)法連接后,sentinel會(huì)重新選舉出一個(gè)新的master,程序獲取到新的master節(jié)點(diǎn),提供讀寫(xiě)服務(wù)

SpringBoot結(jié)合Redis哨兵模式的實(shí)現(xiàn)示例

到此這篇關(guān)于SpringBoot結(jié)合Redis哨兵模式的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)SpringBoot結(jié)合Redis哨兵模式內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产精品v免费视频 | 久久er热这里只有精品23 | 成人午夜视频在线观 | 99久久99久久久99精品齐 | 欧美成a人免费观看久久 | 天码毛片一区二区三区入口 | 国产特黄特色一级特色大片 | 最新国产美女一区二区三区 | 看中国一级毛片 | 男人女人真曰批视频播放 | 国产激情一区二区三区 | 国产日韩欧美精品一区二区三区 | 欧美一级在线观看 | 男人桶女人暴爽的视频 | 精品一区二区三区在线播放 | 免费看三级毛片 | 国产成人精品三级91在线影院 | 天堂视频免费看 | 久久成人免费播放网站 | 国产免费久久精品99久久 | 在线视频 日韩 | 久久福利青草精品资源站 | 精品自拍视频在线观看 | 久久91视频| 欧美日韩精品一区二区在线线 | 亚洲精品在线播放 | 国产午夜一级淫片 | 国产大学生自拍 | 亚洲国产精品久久综合 | 国产欧美亚洲精品 | 久久精品免费一区二区三区 | 亚洲国产一区二区三区综合片 | 精品国产成人高清在线 | 国产主播福利片在线观看 | 成人公开视频 | 国产亚洲人成网站在线观看 | 色老头久久网 | 99精品视频在线这里只有 | 荡公乱妇蒂芙尼中文字幕 | 午夜宅宅宅影院在线观看 | 亚洲 自拍 另类 欧美 综合 |