IT技術互動交流平台

架構設計|_|长春万达影城官网:係統存儲(17)Redis集群方案_--360双色球杀号定胆彩吧:高可用

來源__k7k小游戏:IT165收集  發布日期||-义务教育课程标准实验教科书:2016-12-22 20:36:19

1-_-五星体育f1直播、概述

從本篇文章開始--|注册银彩app,我們將向讀者介紹幾種Redis的高可用高負載集群方案_-|云顶国际登录官网首页。除了介紹Redis 3.X版本中推薦的原生集群方案外_|365天天彩票是不是真的,還會介紹使用第三方組件搭建Redis集群的方法-意林少年版在线阅读。本文我們會首先介紹Redis的高可用集群方案009彩票是合法的吗?。

2-_长虹i30、Redis高可用方案

Redis提供的高可用方案和我們介紹過的很多軟件的高可用方案類似||11选5高频彩票app,都是使用主從節點的思路-_|韩恩典图片。即是有一個Master節點在平時提供服務__|众盈网彩票安全吗,另外一個或多個Slave節點在平時不提供服務(或隻提供數據讀取服務)_京城第一金箍didi。當Master節點由於某些原因停止服務後-_-鸡脚黑,再人工/自動完成Slave節點到Master節點的切換工作|_-粥面故事,以便整個Redis集群繼續向外提供服務-苏霞老师。既然是要進行角色切換|-_花儿乐队演唱会,且要求這些節點針對外部調用者來說沒有任何不同__有线电视接收器,最重要的就是Master節點和Slave節點的數據同步過程--无主之地2发型不好的日子。數據同步最關鍵的設計思路是如何在數據一致性和同步性能上找到一個完美的平衡點||重生小保姆19楼。

同步複製的工作思路可以概括為_刷qb软件:Master節點的任何數據變化都會立即同步到一個或多個Slave節點上__台中市邮编。隻要一個Slave節點同步失敗(例如超時)jellybird果冻酒,都會認為整個數據寫操作過程失敗-|宋慧乔和玄彬结婚照。這樣的設計考慮側重於保證各節點上的數據絕對一致|--234彩票提现多久到账,完全沒有考慮對Master節點的響應性能__|168开奖现场软件下载,甚至會出現Master節點為了保證數據一致性而停止對後續寫操作請求的響應__梅州二手房网。

異步複製的工作思路可以概括為|_苏州园区甲类公积金:Master節點首先保證對外部請求的響應性能_||3分快3计划3期必中,它和Slave節點的數據同步一般由一個新的進程/線程獨立完成--_原北京市委书记。數據複製過程由Slave節點周期性發起或者由它一直駐留在Master節點的連接進行實時監控又或者由Master節點主動推送數據|_阿玛拉王国武器锻造,再或者是同時使用多個異步複製過程_--盈利娱乐平台。由於在Slave節點進行數據同步時|_众乐彩票首页,Master節點一直在處理新的數據寫請求_|_成都江潮电脑,所以Slave節點已完成同步的數據和Master上的實時數據一般會存在一些差異-长百商厦。例如MySQL原生支持的數據複製過程-_-联众好友在线下载,就是一個異步過程|_-360彩票走势图。

很顯然異步複製思路在對調用者的響應性能上||_夜美梦娃娃网,表現要比同步複製好得多_||快手福利视频。但如果由於異步複製而導致的節點間數據差異達到某種程度-_-见我一面吧,就失去了數據同步的意義了__|注册给彩金的游戏网站。所以如何減少節點間的數據差異就成為異步複製過程中需要關注的要點_掌上农业银行不能登录。而後者的處理辦法就有很多了|_许昌三中校服,例如MySQL由第三方插件支持的半同步方式__下一站幸福简介,又例如講解ActiveMQ消息隊列時提到的AutoAck和DUPS_OK_ACK--台湾身份证号,再例如我們下文介紹的Diskless Replication和Master寫保護-艾达王h。

2-1|-_手机qq斗地主java下载、主從複製工作過程

Redis的主從複製功能除了支持一個Master節點對應多個Slave節點的同時進行複製外--_雪菲官网,還支持Slave節點向其它多個Slave節點進行複製_--花语梦之恋人。這樣就使得架構師能夠靈活組織業務緩存數據的傳播-_自由篮球pf加点,例如使用多個Slave作為數據讀取服務的同時-|众赢国际里面是赌钱吗,專門使用一個Slave節點為流式分析工具服務qq2009官方下载正式版。Redis的主從複製功能分為兩種數據同步模式|-|青岛大哥骂雅阁女:全量數據同步和增量數據同步-|-亿彩彩票平台登录。

這裏寫圖片描述

上圖簡要說明了Redis眾喎?http://www.weishengjin.biz/pro/pkqt/" target="_blank" class="keylink">QTWFzdGVyvdq147W9U2xhdmW92rXjtcTIq8G/yv2+3c2ssr25/bPMoaO1sVNsYXZlvdq147j4tqi1xHJ1bl9pZLrNTWFzdGVytcRydW5faWSyu9K71sLKsaOsu/LV31NsYXZluPi2qLXEyc/Su7TO1PbBv82ssr21xG9mZnNldLXEzrvWw9TaTWFzdGVytcS7t9DOxNq05tbQzt63qLaozrvKsaOouvPOxLvhzOG1vaOpo6xNYXN0ZXK+zbvhttRTbGF2ZbeixvDIq8G/zayyvbLZ1/eho9XiyrE8c3Ryb25nPs7ewtvE+srHt/HU2k1hc3RlcrTyv6rBy1JEQr/s1dW5psTco6zL/LrNU2xhdmW92rXjtcTDv9K7tM7Iq8G/zayyvbLZ1/e5/bPMtry74bj80MIvtLS9qE1hc3RlcsnPtcRSRELOxLz+PC9zdHJvbmc+oaPU2lNsYXZlway907W9TWFzdGVyo6yyos3qs8m12tK7tM7Iq8G/yv2+3c2ssr2686OsvdPPwsC0TWFzdGVytb1TbGF2ZbXEyv2+3c2ssr25/bPM0ruw477NysfU9sG/zayyvdDOyr3By6Oo0rKzxs6qsr+31s2ssr2jqaGj1PbBv82ssr25/bPMsrvU2db30qrSwMC1UkRCzsS8/qOsTWFzdGVyu+G9q9DCsvrJ+rXEyv2+3bHku6+y2df3tOa3xdTa0ru49sTatObH+NPyo6zV4rj2xNq05sf40/KyydPDu7fQzrm51Oyho7n9s8zI58/Co7o8L3A+CjxwPjxpbWcgYWx0PQ=="這裏寫圖片描述" src="http://www.weishengjin.biz/uploadfile/files/2016/1222/20161222193742342.png" title="" />

為什麼在Master上新增的數據除了根據Master節點上RDB或者AOF的設置進行日誌文件更新外-_|二手丰田普锐斯,還會同時將數據變化寫入一個環形內存結構|-_青草色的你,並以後者為依據進行Slave節點的增量更新呢成都早教机构排名?主要原因有以下幾個虞城县教育局:

由於網絡環境的不穩定||金宝街百丽宫,網絡抖動/延遲都可能造成Slave和Master暫時斷開連接_-成年的人的身份证号,這種情況要遠遠多於新的Slave連接到Master的情況|__联想a60手机游戏。如果以上所有情況都使用全量更新-_苟各庄住宿,就會大大增加Master的負載壓力——寫RDB文件是有大量I/O過程的__|朱云来的妻子,雖然Linux Page Cahe特性會減少性能消耗_-149特马结果。

另外在數據量達到一定規模的情況下--_再世篇攻略,使用全量更新進行和Slave的第一次同步是一個不得已的選擇——因為要盡快減少Slave節點和Master節點的數據差異|-_新密五个人。所以隻能占用Master節點的資源和網絡帶寬資源-__东莞唐会。

使用內存記錄數據增量操作_|_jindon京东,可以有效減少Master節點在這方麵付出的I/O代價-|-德甲历届冠军。而做成環形內存的原因--成都男子街头杀妻,是為了保證在滿足數據記錄需求的情況下盡可能減少內存的占用量||3110c软件。這個環形內存的大小||永盛彩票导航,可以通過repl-backlog-size參數進行設置|_固话积分查询。

Slave重連後會向Master發送之前接收到的Master run_id信息和上一次完成部分同步的offset的位置信息_-可恶的男妇科医生。如果Master能夠確定這個run_id和自己的run_id一致且能夠在環形內存中找到這個offset的位置_-沈阳调料批发市场,Master就會發送從offset的位置開始向Slave發送增量數據|-_众盈彩票新三d是骗局吗。那麼連接正常的各個Slave節點如何接受新數據呢-||骑刃王全集?連接正常的Slave節點將會在Master節點將數據寫入環形內存後_|_妙巢正品,主動接收到來自Master的數據複製信息|__198彩票平台。

2-2-|_盈发彩票官网、基本Master/Slave配置

Redis提供的主從複製功能的配置信息|_盈彩时时彩计划,在Redis主配置文件的“REPLICATION”部分_||新能量电力商务网。以下是這個部分的主要參數項說明-|致吸血鬼的五曲:

slaveof <masterip> <masterport>_-预感的意思:如果您需要將某個節點設置為某個Master節點的Slave節點||脉搏士,您需要在這裏指定Master節點的IP信息和端口信息_||苏泊尔电压力锅使用方法。這個設置項默認是關閉的|才子骂小花2,也即是說Master節點不需要設置這個參數_-成年人身份证号。另外_-通成物流单号查询,除了通過配置文件設置外--|168彩票安卓版28,您還可以通過Redis的客戶端命令進行slaveof設定|-_角马网。

slave-serve-stale-data|_-1号计划app:當master節點斷開和當前salve節點的連接或者當前slave節點正在進行和master節點的數據同步時|_|众彩彩票网是真实的吗,如果收到了客戶端的數據讀取請求||三星b7732微信,slave服務器是否使用陳舊數據向客戶端提供服務-|掌信彩平台导师视频。該參數的默認值為yes_-|平谷聊天室。

slave-read-only 是否將salve節點設置為“隻讀”|__注册送彩彩金网站。一旦設置為“隻讀”|-钱启敏博客,表示這個Salve節點隻會進行數據讀取服務-_盈彩彩票是骗局吗,如果客戶端直接向這個Salve節點發送寫數據的請求_-夏士莲防脱洗发水,則會收到錯誤提示-_天通银招商。建議采用默認的“yes”值進行設定_--阳谷吧。

repl-diskless-sync|-cfve卡枪代码:上文已經介紹過Redis的主從複製功能基於RDB|开业软文,後者的過程是將數據刷入RDB文件(實際上是Linux的Page Cache區域)_|意彩如何申请账号,然後基於RDB文件內容的更新情況和Salve當前已同步的數據標記點來進行Salve上的數據更新|-雅思口语考试时间。所以這個過程實際會增加一定的數據延遲_-夏朝嘉,消耗一定的處理資源|_|悟空传电影百度云。基於這個情況|_-众彩网app怎样下载,Redis中提供了一種不經過物理磁盤設備就進行主從數據同步的技術青山湖教体局,稱為diskless|__金盟减肥药。但是直到Redis version 3.2這個技術也一直處於試驗狀態|__2019肖码期期准,所以並不推薦在生產環境下使用|-|诺基亚3500c软件:“
WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY”-|_8万以下什么车好。

repl-diskless-sync-delay|_丝诺萄官网:這個參數隻有在上一個參數設置為“yes”時才起作用_--索爱w610,主要是設置在進行兩次diskless模式的數據同步操作的時間間隔--十字星是什么意思。默認為5秒_-118娱乐彩票。

repl-ping-slave-period-|某糕点厂中秋节前要制作一批盒装月饼:Slave節點向Master節點發送ping指令的事件間隔__金条树,默認為10秒|_钢构的故乡。

repl-timeout-|-乒乓球单循环赛:這是一個超時間-|阿克苏诺贝尔待遇,當某些操作達到這個時間時_|11086苹果移动彩票,Master和Slave雙方都會認為對方已經斷開連接|-北京木樨园服装批发市场。實際上您可以將這個時間看成是一個租約到期的時間-_蒙牛牛奶图片。那麼這個操作時間會影響哪些操作呢|刑天后传全集?A--员工行为规范、向Slave進行的數據同步操作本身不能超過這個時間__ZOOSKOOIStay大狗;B__霍去病的小软糖、Slave向Master發送一個PING指令並等待響應的時間__移动3g网络覆盖查询;C_|-騒麦歌词、Master向Slave發送PONG回複並等待ACK的時間__注册送彩金的所有平台。

repl-disable-tcp-nodelay---金星果:這個選項的默認值為no_-|132彩票平台哪里的?,它對優化主從複製時使用的網絡資源非常有用||药酒是在哪个朝代后出现的。要明白這個參數的含義||红晶兴,就首先要解釋一下tcp-nodelay是個什麼玩意兒__长沙杨丽君?TCP數據報的報文頭包含很多屬性-_许小年微博,這些屬性基本上起到記錄和保證傳輸目的_|_娱乐天地彩票官网、傳輸狀態的作用_威海卫生365,但沒有數據報的所攜帶的業務數據(稱之為有效載荷)||永盛彩票网信誉吗。那麼很明顯|东汉书院校歌,20個字節內容的信息分成20個數據報進行傳輸和隻用一個數據報進行傳輸_|云顶娱乐下载官网100,需要占用的網絡資源就完全不一樣|霸道王妃风流王。JohnNagle在1984年發明了一種減輕網絡傳輸壓力的算法2元彩票开奖结果手机触摸版,就是為了解決這個問題(算法的名字就叫做“Nagle”_-至尊时时彩票平台4567,後續的技術人員又做了很多改進和升級)__22选5开奖最新结果河南。其基本思路就是將要發送的內容湊夠一定的數量後|-_关予涵,再用一個數據報發送出去---乐妇源养阴宝。如果該屬性設置為yes||-01彩票官网,Redis將使用“Nagle”算法(或類似算法)_陈奕迅最新电影,讓數據報中的有效載荷湊夠一定數量後|_李天一受害老师照片,在發送出去-||低塘租房;設置成no|_-外地车能过户北京吗,Redis就不會這麼做-|派尔快递。

repl-backlog-size|-|若风从零单排闯韩服:上文已經介紹過了Redis中為了進行增量同步所準備的環形內存區域|-|打吊针原曲,以及Redis這樣做的原因額__168手机彩票开奖,所以這裏就不再贅述了_-|少年进化论成员。這個選項就是用來設置環形內存的大小的-|进口货物报关单样本,這個選項的默認值為1MB_-|天津津工超市火车票代售点;正式的生產環境下可以稍微加大一些|-兰州摸吧,例如5MB-河南4套。

slave-priority--|青田信息港:當前Slave節點的優先級權重_|_酷顿。我們後文會介紹一款Redis自帶的監控和故障轉移工具-__为什么女的会操出水:Redis Sentinel-|小米盒子越狱,這個工具允許一個Master節點下有多個Slave節點_|月球知识,並且可以自動切換Slave節點為Master節點__青岛火车站订票电话。如果Slave節點的優先級權重值越低---赢彩在线,就會再切換時有限成為新的Master節點_-|陈丽华简历。

min-slaves-to-write和min-slaves-max-lag|十大冷门行业:為了盡可能避免Master節點對應的多個Slave節點在數據複製過程中數據差異被越拉越大_|盈彩二维码。Redis服務提供了一組拒絕數據寫操作的策略-乐妇源养阴宝,這個策略可以解釋為_-陕西靖边新闻:當Master上在min-slaves-max-lag時間(單位秒)間隔後-金庸群侠传2加强版修改器,任然有min-slaves-to-write個Slave和它正常連接|-_摩托坊出售区,那麼Master才允許進行數據寫操作__李驰新浪博客。

2-3||-黄山奇石图片及名称、Master和Slave設置實例

討論了Redis中主從複製的基本原理和Redis主配置文件中針對主從複製的設定選項意義後__09彩票,我們來看一個實際設置過程__阿龙山吧。注意-__冰山互联,由於這個過程非常簡單所以我們會“非常快”_舞阳县公安局。首先Master服務器不需要針對主從複製做任何的設置(這不包括對主從複製過程的配置優化)-|众亿超级彩。所以我們就直接來看Slave節點的配置暴力破解密码软件:

Slave節點上我們隻需要做一件事情_-整理英文,就是打開slaveof選項_-铆工是干什么的:
......
# slaveof選項的設置-22彩票平台有人玩吗,給定master節點的ip和port就可以了
# 192.168.61.140就是master節點
slaveof 192.168.61.140 6379
......
接著-|强x轮流系列h文全集,我們馬上就可以看看同步效果了||十大餐饮加盟品牌。首先確保您的master節點使工作正常的-_-中央政治局常委人数,然後就可以啟動Slave節點了_-u盘修复大师:
......
5349:S 17 Dec 04:20:00.773 * Connecting to MASTER 192.168.61.140:6379
5349:S 17 Dec 04:20:00.773 * MASTER <-> SLAVE sync started
5349:S 17 Dec 04:20:00.774 * Non blocking connect for SYNC fired the event.
5349:S 17 Dec 04:20:00.775 * Master replied to PING, replication can continue...
5349:S 17 Dec 04:20:00.776 * Partial resynchronization not possible (no cached master)
5349:S 17 Dec 04:20:00.782 * Full resync from master: 976f0b31cbf6acd4fcc888301ea4639a7c591136:1
5349:S 17 Dec 04:20:00.864 * MASTER <-> SLAVE sync: receiving 119 bytes from master
5349:S 17 Dec 04:20:00.865 * MASTER <-> SLAVE sync: Flushing old data
5349:S 17 Dec 04:20:00.865 * MASTER <-> SLAVE sync: Loading DB in memory
5349:S 17 Dec 04:20:00.865 * MASTER <-> SLAVE sync: Finished with success
5349:S 17 Dec 04:20:01.068 * Background append only file rewriting started by pid 5352
5349:S 17 Dec 04:20:01.082 * AOF rewrite child asks to stop sending diffs.
5352:C 17 Dec 04:20:01.082 * Parent agreed to stop sending diffs. Finalizing AOF...
5352:C 17 Dec 04:20:01.082 * Concatenating 0.00 MB of AOF diff received from parent.
5352:C 17 Dec 04:20:01.082 * SYNC append only file rewrite performed
5352:C 17 Dec 04:20:01.082 * AOF rewrite: 6 MB of memory used by copy-on-write
5349:S 17 Dec 04:20:01.168 * Background AOF rewrite terminated with success
5349:S 17 Dec 04:20:01.168 * Residual parent diff successfully flushed to the rewritten AOF (0.00 MB)
5349:S 17 Dec 04:20:01.168 * Background AOF rewrite finished successfully
......

筆者在Slave節點上開啟了定期的RDB快照和AOF日誌功能_|遗言网,所以各位讀者可以忽略那些日誌信息|__178众发娱乐,直接關注“Connecting to MASTER ….”和“MASTER <-> SLAVE …….”這些日誌信息就好--盈宝彩可靠不。

以下是Master節點上給出的日誌信息
......
5614:M 17 Dec 04:20:00.789 * Slave 192.168.61.145:6379 asks for synchronization
5614:M 17 Dec 04:20:00.789 * Full resync requested by slave 192.168.61.145:6379
5614:M 17 Dec 04:20:00.789 * Starting BGSAVE for SYNC with target: disk
5614:M 17 Dec 04:20:00.791 * Background saving started by pid 5620
5620:C 17 Dec 04:20:00.814 * DB saved on disk
5620:C 17 Dec 04:20:00.815 * RDB: 6 MB of memory used by copy-on-write
5614:M 17 Dec 04:20:00.875 * Background saving terminated with success
5614:M 17 Dec 04:20:00.877 * Synchronization with slave 192.168.61.145:6379 succeeded
......

看來Master節點收到了Slave節點的連接信息_|-长城彩票代理加盟,並完成了全量數據同步操作_--哈尔滨拼客网。

2-4__-苏州园林卡景点、關閉RDB功能的說明

以上介紹的Master節點和Slave節點的設置是否特別簡單_|鱼团网 衢州?是的--_曾潇逸,實際上隻需要打開了Slave節點上“REPLICATION”區域的slaveof選項就可以讓Redis的主從複製功能運作起來---冰河时代2歌词。現在我們往回倒|_|兰州商学院长青学院教务管理系统,回到上一篇文章的介紹_警察打僵尸。在上一篇文章介紹RDB快照功能的配置項時||-百度在线朗读器,文章提到了可以用以下方式關閉RDB快照功能__-流动人口信息:

# 以下為默認的設置為_|-葫芦岛一高中家长汇,注釋掉即可
# save 900 1
# save 300 10
# save 60 10000
# 在設置以下選項_|清华保安,就可以關閉RDB功能
save ''

但是根據本文對Redis主從複製的介紹|__银江论坛,我們可以發現Redis的RDB快照功能實際上是無法真正關閉的-_|宋老六!以上所謂關閉RDB功能的設置_-金庸2加强版,隻是關閉了Redis服務在正常工作時定期快照的條件設定_|-106官网彩票绑卡安全吗,但隻要有Slave節點請求全量數據同步_美国军用飞机编号f,Master節點就會強製做一次RDB快照|_至尊app官方下载。並且如果客戶端主動發送BGSAVE命令--初中数学教师述职报告,要求Redis服務進行RDB快照時|-_淘宝开店步骤,Redis也會被動執行RDB快照操作_|cctv6电影频道节目表。

但是本文還是建議在組建Redis高可用集群時|-青岛市公交线路图,關閉Master節點上的RDB功能_|中视购物网。讀者一定要清楚這樣做的原因-|海峡两岸主持人:這不是為了像個別網絡資料說的那樣真正關閉Redis的RDB快照功能_小狼狗高手论坛,而是盡可能減少Master上主動進行RDB操作的次數|易点彩票网双色球专栏,並將RDB快照工作轉移到各個Slave節點完成||360购彩彩票大厅。

3_-|7小游戏大全、Redis Sentinel

Redis服務提供了性能較高的主從複製功能-_深圳山寨手机批发,但是沒有提供原生的Master——Slave的切換功能_-魏征进谏图作者。也就是說如果您隻是配置了Redis的主從複製功能-||我们结婚了20130503,那麼在Master節點出現故障時|--vov绿茶眼线笔,您必須手動將一台Slave狀態的節點切換為Master狀態--|实况足球2014psp。當然這個問題在Redis Version 2.8 版本前是有標準解決方案的-_-给学生的毕业赠言,那就是|_青岛教育人事处:Keepalived + Redis服務組成的高可用集群_|柏原崇佟丽娅亲密照。

這裏寫圖片描述

由Keepalived監控Redis高可用集群眾喎?http://www.weishengjin.biz/pro/pkqt/" target="_blank" class="keylink">QTWFzdGVyvdq147XEuaTX99e0zKyjrLKi1NrS7LOjx+m/9s/Cx9C7u8Ht0ru49r3ateO908zmuaTX96GjtavKx6Os1eK49re9sLjKx9PQ0rvQqc7KzOLBy6OsxuTW0Nau0ru+zcrHy/nT0LXEU2xhdmW92rXj1NpTdGFuZGJ517TMrMqxzt63qLfWtaNNYXN0ZXK92rXjtcTIzrrO0NTE3NG5waYmbWRhc2g7Jm1kYXNoO7y0yrnE+sno1sPBy3JlYWQtb25sebXIss7K/dKysrvQ0KOs0vLOqlZJULj5sb6yu7vhsNHH68fzx9C5/ciloaOyosfS1eLW1re9yr27ubK7zKu3vbHjvOC/2FJlZGlzuN+/ydPDvK/IutbQuPe49rf+zvG92rXjtcTKtcqx17TMrKGjPC9wPgo8cD6001ZlcnNpb24gMi44sOaxvr+qyryjrFJlZGlzzOG5qcHL0ru49tStyfq1xNb3tNPXtMysvOC/2LrNx9C7u7XE1+m8/iZtZGFzaDsmbWRhc2g7UmVkaXMgU2VudGluZWyho82ouf3L/Ly8yvXIy9Sxsru1q7/J0tTN6rPJUmVkaXO437/J08O8r8i6tcTKysqxvOC/2KOsu7m/ydLUzai5/bHgs8zK1rbOvPXH4byvyLrW0E1hc3Rlcr3atePW0LbBstnX97XE0bnBpqGjsb692sTayN2jrM7Sw8fP8rbB1d+96cnc1eK49lJlZGlzIFNlbnRpbmVstcS88rWlyrnTw6GjPC9wPgo8aDQgaWQ9"3-1基本配置">3-1|168彩票真的吗、基本配置

由於Redis Sentinel是Redis原生支持的_-|12306智行火车电话,以Redis Version 3.2為例__剑灵李素梅在哪,在下載安裝後就可以直接使用命令“redis-sentinel”啟動Sentinel了_|_云顶娱乐电脑版登录。Sentinel的主配置文件模板存放在Redis安裝目錄的下||-陈秋艳,默認名為“sentinel.conf”--_盈盈彩票坑客户。以下命令可以啟動Sentinel(啟動Sentinel所依據的配置文件是一定要攜帶的參數)_-|苏拉病毒:

# redis-sentinel ./sentinel.conf

Redis Sentinel本身也支持集群部署-各种皮肤病图片大全,而且為了在生產環境下避免Sentinel單點故障-__阜阳市卫生局,所以也建議同時部署多個Sentinel節點_|诗朗诵相信未来。部署多個Sentinel還有一個原因|--爸爸的木朵,就是提高Master——Slave切換的準確性_|永胜国际投注是真的吗。以下的配置文件介紹會說明這一點_芭莎礼品网。

下麵我們介紹一些Sentinel主配置文件中的關鍵配置|-银富鳞,注意Sentinel主配置文件也有類似Redis主配置文件提供的訪問保護模式(protected-mode)||_铲形币是哪国的、訪問者權限控製(auth-pass)等_|疥舒宁多少钱,但是它們的意義基本上類似前文介紹過的__花颜 匪我思存,在Redis主配置文件中的相似內容_萨满焦点打断宏,所以這裏就不再贅述了_-|易富彩票平台。

sentinel monitor <master-name> <ip> <redis-port> <quorum>__易旺彩票信誉:

這個屬性是Redis Sentinel中的最主要設置元素-李驰博客,換句話說如果要開啟Sentinel甚至可以隻設置這個屬性|阳光工资。它包括了四個參數--钚电池:master-name_男儿当入樽粤语版,這個參數是一個英文名說明了Sentinel服務監聽的Master節點的別名-365彩票网络请求超时,如果一個Sentinel服務需要同時監控多個Master--_湘南纯爱组国语,這需要設置多個不同的master-name-|易发彩票靠谱吗;ip和redis-port||赶集瓜子网,指向sentinel需要監控的Redis集群最初的那個Master節點(為什麼會是最初呢_红米手机的缺点?後文會說明)的ip和端口_-|阿里巴巴小额批发;quorum-|_传奇个性行会名字,投票數量這個參數很重要--许小年微博,如果是Sentinel集群方式下_||1288彩票网是真是假,它設定“當quorum個Sentinel認為Master異常了|_|新股上市公告,就判定該Master真的異常了”-|黑车交易。單個Sentinel節點認為Master下線了被稱為主管下線_|女烈专辑,而quorum個Sentinel節點都認為Master下線的情況被稱為客觀下線-_风毒龙战利品。

sentinel parallel-syncs <master-name> <numslaves>||-永盛彩票赢了不给钱:

一旦原來的Master節點被認為客觀下線了|-_霍炽昌,Sentinel就會啟動切換過程--135时时彩彩票。大致來講就是從當前所有Slave節點選擇一個節點成為新的Master節點(這時在Redis中設定的slave-priority參數就會起作用了)--_厚皮哪里多。而其它的Slave其slaveof的Master信息將被sentinel切換到新的Master上-|-法网奖金。而一次同時並行切換多少個Slave到新的Master上就是這個參數決定的-__南通开沙岛。如果整個Redis高可用集群的節點數量不多(沒有超過6個)_亿博彩票在哪个网址,建議使用默認值就可以了|-长沙车展2013。

主配置文件中被rewrite的參數內容_--召召与木木:sentinel.conf文件中的配置內容會隨著Sentinel的監控情況發生變化——由Sentinel程序動態寫入到文件中|-长春校服门。例如sentinel known-slave參數_|银色黎明声望怎么刷、sentinel current-epoch參數和sentinel leader-epoch參數-陕西省国资委网站。

注意|_8万元左右买什么车好,在Sentinel中您隻需要配置最初的Master的監控位置-_永诚彩票娱乐,無需配置Master下任何Slave的位置_北京市委书记简历,Sentinel會自己識別到這些Master直接的或者間接的Slave___1比1现金兑换捕鱼游戏。

3-2|_|众发娱乐代理能提现吗、切換效果

介紹完配置後|-|苏果之家,我們來簡單看一個Sentinel工作和切換的例子-|优信彩票正规吗。這個例子中的有一個Master節點和一個Slave節點_2019微信上怎么买彩票,當Master節點出現故障時|_亿彩邀请码是多少,通過Sentinel監控到異常情況並自動完成Slave狀態的切換|-_重庆324医院。

首先請保證您的Master節點和Slave節點都是正常工作的--_111彩票骗局,這個過程可以參見筆者之前文章的介紹|_|金庸群侠传之苍龙逐日攻略:

節點地址 節點作用
192.168.61.140 Redis Master
192.168.61.145 Redis Slave
192.168.61.140 Redis Sentinel

這裏就不再贅述Redis Master和Redis Slave的內容了-芦台二手房,因為在本文第2節中已經詳細介紹過|祖峥。實際上您隻需要打開Slave節點的主配置文件_雷立,並增加slaveof的配置信息-_永城彩票平台,將其指向Master的IP和端口就可以了|_-凤舞摩天麦词。以下是Sentinel節點主要更改的配置信息_198注册网址:

......
sentinel monitor mymaster 192.168.61.140 6379 1
......

由於在測試環境中我們隻使用了一個Sentinel節點|2016贺岁档电影,所以設置sentinel monitor配置項中的quorum為1就可以了_-大连好旺角房屋中介,代表有一個Sentinel節點認為Master不可用了|-|众彩网可靠吗,就開啟故障轉移過程||天翼无线上网卡驱动。當然生產環境下不建議這樣使用__宏伟租房。

之後我們使用以下Sentinel的主要配置信息啟動Sentinel_|-盈彩平台是真的吗:

# redis-sentinel ./sentinel.conf

......
8576:X 19 Dec 00:49:01.085 # Sentinel ID is 5a5eb7b97de060e7ad5f6aa20475a40b3d9fd3e1
8576:X 19 Dec 00:49:01.085 # +monitor master mymaster 192.168.61.140 6379 quorum 1
......

之後主動終止原來Master的運行過程(您可以直接使用kill命令-|_ndawzd,或者拔掉網線-历任上海市委书记,又索性直接關機)|_|劳动法合同法全文,來觀察Slave節點和Sentinel節點的日誌情況-海南马自达官方网站:

當斷開原來的Master節點後_大象网直播,Slave節點將提示連接失效並開始重試_李白谈爱。當Sentinel開始進入故障轉移並完成後_-|132彩票官网网址,Salve又會打印相應的過程信息-_|198总彩代:

......
8177:S 19 Dec 00:53:17.467 * Connecting to MASTER 192.168.61.140:6379
8177:S 19 Dec 00:53:17.468 * MASTER <-> SLAVE sync started
8177:S 19 Dec 00:53:17.468 # Error condition on socket for SYNC: Connection refused
......
8177:M 19 Dec 00:53:18.134 * Discarding previously cached master state.
8177:M 19 Dec 00:53:18.134 * MASTER MODE enabled (user request from 'id=3 addr=192.168.61.140:51827 fd=5 name=sentinel-5a5eb7b9-cmd age=258 idle=0 flags=x db=0 sub=0 psub=0 multi=3 qbuf=0 qbuf-free=32768 obl=36 oll=0 omem=0 events=r cmd=exec')
8177:M 19 Dec 00:53:18.138 # CONFIG REWRITE executed with success.
......

從以上Slave節點的內容可以看到---智行彩票,Slave被切換成了Master狀態-|_2000彩官网。那麼Sentinel本身有哪些重要的日誌信息呢||2000彩平台登录?如下所示--_掌信彩是怎样赚钱的:

......
// 當前Sentinel節點確定原Master主觀下線
8576:X 19 Dec 00:53:18.074 # +sdown master mymaster 192.168.61.140 6379
// 由於設置的quorum為1_||我爱你 爱乐讯,所以一個Sentinel節點的主管下線就認為Master客觀下線了
8576:X 19 Dec 00:53:18.074 # +odown master mymaster 192.168.61.140 6379 #quorum 1/1
// 第三代--_铠甲勇士刑天2后传,每轉移一次故障epoch的值+1---10秒猜大小的彩票,
// 不好意思-盈盈彩,在書寫測試實例前--许绍峰,本人已經自行測試了兩次故障轉移-||问道时装,所以這裏看到的epoch為3
// 這個信息會自動寫入到Sentinel節點的主配置文件中
8576:X 19 Dec 00:53:18.074 # +new-epoch 3
// 開始進行故障轉移
8576:X 19 Dec 00:53:18.074 # +try-failover master mymaster 192.168.61.140 6379

// 選舉出主導故障轉移的Sentinel節點__-lol定级赛规则,因為不是所有Sentinel節點都會主導這個過程
8576:X 19 Dec 00:53:18.084 # +vote-for-leader 5a5eb7b97de060e7ad5f6aa20475a40b3d9fd3e1 3
8576:X 19 Dec 00:53:18.084 # +elected-leader master mymaster 192.168.61.140 6379
8576:X 19 Dec 00:53:18.084 # +failover-state-select-slave master mymaster 192.168.61.140 6379

// 選擇提升哪一個slave作為新的master
8576:X 19 Dec 00:53:18.156 # +selected-slave slave 192.168.61.145:6379 192.168.61.145 6379 @ mymaster 192.168.61.140 6379
8576:X 19 Dec 00:53:18.156 * +failover-state-send-slaveof-noone slave 192.168.61.145:6379 192.168.61.145 6379 @ mymaster 192.168.61.140 6379
8576:X 19 Dec 00:53:18.211 * +failover-state-wait-promotion slave 192.168.61.145:6379 192.168.61.145 6379 @ mymaster 192.168.61.140 6379

// 提升原來的slave
8576:X 19 Dec 00:53:19.201 # +promoted-slave slave 192.168.61.145:6379 192.168.61.145 6379 @ mymaster 192.168.61.140 6379
// 試圖重寫所有salves節點的配置信息_-mf51,並讓它們指向新的master
8576:X 19 Dec 00:53:19.201 # +failover-state-reconf-slaves master mymaster 192.168.61.140 6379
// 故障轉移結束
8576:X 19 Dec 00:53:19.250 # +failover-end master mymaster 192.168.61.140 6379
// 最終完成master節點的切換
8576:X 19 Dec 00:53:19.250 # +switch-master mymaster 192.168.61.140 6379 192.168.61.145 6379

// 注意原有的master節點會再顯示一條作為主觀下線||105彩票网,但是這次下線信息是以salve身份通知的
// 這是因為這次故障切換後-__免摇启动器,原來的master就算再上線-|-群主被砍死,也隻會作為Slave節點了
8576:X 19 Dec 00:53:19.251 * +slave slave 192.168.61.140:6379 192.168.61.140 6379 @ mymaster 192.168.61.145 6379
8576:X 19 Dec 00:53:49.305 # +sdown slave 192.168.61.140:6379 192.168.61.140 6379 @ mymaster 192.168.61.145 6379
......

通過Slave節點和Sentinel節點的日誌可以看到-|计提福利费,在經過了短暫的時間後Sentinel成功將唯一一個Slave節點轉換成了Master節點-_仲博平台会不会黑钱啊,並繼續向外部提供服務|_亿客隆彩票是真的吗。

之後我們重新啟動原有Master節點__wifi密码破解软件,看看會發生什麼-_|圆点包包网:

# 以下是原有Master啟動後_-_李晨阳年龄,在Sentinel顯示的信息

......
8576:X 19 Dec 01:31:12.743 * +reboot slave 192.168.61.140:6379 192.168.61.140 6379 @ mymaster 192.168.61.145 6379
8576:X 19 Dec 01:31:12.805 # -sdown slave 192.168.61.140:6379 192.168.61.140 6379 @ mymaster 192.168.61.145 6379
......

一個非常重要的現象是||金五星百货城,當原來的Master節點再次啟動時_励志小说排行榜前十名,即使配置文件中沒有設定slaveof信息--瑟银矿哪里多,它也會在Sentinel的協調下稱為Slave節點_-村姑图片。這是因為任何一次Master到Slave的切換都是要付出代價的_勇士vs步行者,其中除了狀態本身的判斷外--_银行建筑,還有Sentinel自身協調和選舉過程(選舉哪一個Sentinel進行實質的切換動作)氹仔,還有新的Master的選定問題--永盛国际app是不是骗局,甚至包括Slave的slaveof目標變化過程中需要處理的數據一致性問題等等工作-_易经算彩票号码。所以最好的辦法就是||重生洪荒之逍遥至尊:隻要能夠保證Redis高可用集群持續工作__178娱乐怎么样,就不進行Master狀態的切換||索爱x8刷机。

3-3-|_九九归一打一生肖、Java客戶端配合Sentinel的使用

通過Sentinel組建的高可用集群對比通過第三方軟件組建的高可用集群而言___金螳螂 朱兴良,有其明顯的優點|闹腾影院。例如可以實時返回集群中每個Redis節點的狀態-_|我要看一级片,且各節點間更能保持最佳的數據一致性-|学习考试好帮手,另外還可以在必要的時候通過轉移客戶端讀操作--注册送彩金验证手机,減輕Master節點的工作壓力|_阿尔玛蓝。但是它也有一個很明顯的缺點_|飞来横祸的读音,就是由於整個集群可以向調用者開放多個Redis節點的地址--阳新县邮编,且Sentinel本身並不能充當路由器的作用||阳江红毯影院,所以當Redis高可用集群進行狀態切換時-苏志变,客戶端可能並不清楚原有的Master節點已經失效了_白看网络电视。如下圖所示-|_金宝街百丽宫:

這裏寫圖片描述

還好的是--_至尊彩是骗局吗?,Java最常用的Redis客戶端jedis提供了一組針對Sentinel的集群工具|_-果酱汉堡店变态版,讓客戶端可以在獲取當前Redis高可用集群中的Master節點後|_陕西省职业技能鉴定指导中心,再在這個Master節點上完成數據讀寫操作_|诺基亚3500c软件。但另外一個讀操作的負載問題還是沒有被解決--fj12530,所有的讀操作也隻會在Master節點完成_|请输入搜索关键字。

這裏寫圖片描述

我們來看看一些關鍵代碼__众富娱乐登录下载:

......
// 這是基本的連接配置
// 當讓這些屬性都可以根據您的實際情況進行更改
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(100); 
poolConfig.setMaxIdle(50); 
poolConfig.setMinIdle(20); 
poolConfig.setMaxWaitMillis(6 * 1000); 
poolConfig.setTestOnBorrow(true);

// 以下是可用的多個Sentinel節點的ip和端口
Set<String> jedisClusterNodes = new HashSet<String>();
jedisClusterNodes.add('192.168.61.140:26379');
//如果有多個Sentinel一個一個添加進去
//jedisClusterNodes.add('192.168.61.139:26379');
JedisSentinelPool jedisSentinelPool = new JedisSentinelPool('mymaster', jedisClusterNodes , poolConfig);

// 開始插入信息
for(Integer index = 0 ; index < 10000 ; index++) {
    // 獲取最新的master信息
    Jedis master = null;
    try {
        master = jedisSentinelPool.getResource();
    } catch(JedisConnectionException e) {
        // 如果出現異常-_|菜鸟卧底广播剧,說明當前的maser斷開了連接||嘟嘟熊动画片全集,那麼等待一段時間後重試
        LOGGER.info('master is loss , waiting for try again......');
        synchronized (MasterSlaveApp.class) {
            MasterSlaveApp.class.wait(5000);
        }
        index--;
        continue;
    }

    // 開始正式插入
    master.set(('key' + index).getBytes(), index.toString().getBytes());
    LOGGER.info('write _-重庆歪歌横行: ' + 'key' + index);
    synchronized (MasterSlaveApp.class) {
        // 停止0.5秒--苏黎世之秋,以便觀察現象
        MasterSlaveApp.class.wait(500);
    }
}
jedisSentinelPool.close();
......

在示例代碼中Sentinel節點隻有一個||最新钓鱼用具,存在於192.168.61.140:26379上__|长春花卉市场。如果是生產環境建議不要對Sentinel進行單點部署||-hp3808,否則一旦Sentinel單點崩潰會造成整個Redis高可用集群在客戶端無法進行Master節點的切換|_|360彩票大乐透杀号定胆。在初始階段192.168.61.140:6379是master節點_|_亿博国际注册,然後我們在程序執行過程中將原有的master節點關閉-_-命运交响曲迟帅吻戏,這時上麵的客戶端代碼片段可能的輸出以下日誌信息(部分)-_辽宁电视台全运频道:

......
14639 [main] INFO redis_test.test.MasterSlaveApp  - write -温州城市学院: key29
16144 [main] INFO redis_test.test.MasterSlaveApp  - master is loss , waiting for try again......
22148 [main] INFO redis_test.test.MasterSlaveApp  - master is loss , waiting for try again......
28151 [main] INFO redis_test.test.MasterSlaveApp  - master is loss , waiting for try again......
34155 [main] INFO redis_test.test.MasterSlaveApp  - master is loss , waiting for try again......
40159 [main] INFO redis_test.test.MasterSlaveApp  - master is loss , waiting for try again......
十二月 20, 2016 4:12:22 下午 redis.clients.jedis.JedisSentinelPool initPool
信息: Created JedisPool to master at 192.168.61.145:6379
46163 [main] INFO redis_test.test.MasterSlaveApp  - master is loss , waiting for try again......
51166 [main] INFO redis_test.test.MasterSlaveApp  - write |__译乐通: key30
51670 [main] INFO redis_test.test.MasterSlaveApp  - write _|18147期大乐透开奖号码: key31
......

==================================
後文內容預告||prada中文官网:
4__神医傻妃txt新浪、Redis負載均衡方案
4-1|_汇家卡盟、Twitter Twemproxy
4-2|__众彩彩票app下载安装、Twemproxy存在的問題
5|李素梅在哪、Redis 3.X Cluster
5-1||-雅虎宝贝鱼、Redis Cluster 簡介
5-2||_五年陈艾、Redis Cluster 搭建實例
5-3|--赢发彩票网址、Client連接到Redis Cluster

==========各位讀者對文章邏輯如果有質疑_|-陈嘉陵,歡迎在評論區留言|_qing色。感謝幫助我指出錯誤的讀者||goxiazai cc。

Tag標簽___本草仙目: 集群   架構   方案  
  • 專題推薦

  • Windows7係統入門 優化 技巧技術專題
  • Windows7係統專題 無論是升級操作係統-|银行卡手机充值号码、資料備份_|258竞彩是正规网站吗、加強資料的安全及管...... 詳細
About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯係方式
本站內容來自於互聯網,僅供用於網絡技術學習,學習中請遵循相關法律法規
欢乐飞艇K8彩票88彩票UC彩票快乐时时彩分分彩票

免责声明: 本站资料及图片来源互联网文章,本网不承担任何由内容信息所引起的争议和法律责任。所有作品版权归原创作者所有,与本站立场无关,如用户分享不慎侵犯了您的权益,请联系我们告知,我们将做删除处理!