Redis集群收縮的概念和流程

本篇內容介紹了“redis集群收縮的概念和流程”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

大廠網站建設公司創(chuàng)新互聯建站,大廠網站設計制作,有大型網站制作公司豐富經驗。已為大廠千余家提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站建設要多少錢,請找那個售后服務好的大廠做網站的公司定做!

概念

收縮集群也就是縮減集群節(jié)點的規(guī)模,也就是需要將部分節(jié)點下線。下線節(jié)點的流程如下:

流程

1.首先需要確定下線節(jié)點是否有負責的槽,如果有則需要將槽遷移到其它節(jié)點中,保證節(jié)點下線后整個集群槽節(jié)點映射的完整性。

2.當下線節(jié)點不再負責槽或者本身是從節(jié)點時,就可以通過集群內其它節(jié)點忘記下線節(jié)點,這樣當所有的節(jié)點都忘記了下線節(jié)點則該節(jié)點就可以正常關閉了。

Redis集群收縮的概念和流程

下線遷移槽

下線節(jié)點需要把自己負責的槽遷移到其它節(jié)點,原理和上一篇介紹的集群擴容遷移槽一樣。下面我們把6381和6383節(jié)點下線。

Redis集群收縮的概念和流程

6381是主節(jié)點,并且如上圖所示,我們知道該節(jié)點負責槽8192-12287。按照我們上面介紹的流程,我們在下線節(jié)點之前需要將該節(jié)點負責的槽遷移到其它節(jié)點中。并且收縮集群和集群擴容正好是相反的,我們需要將6381節(jié)點變?yōu)樵垂?jié)點,其它主節(jié)點變?yōu)槟繕斯?jié)點。我們在遷移槽時,還是使用redis-trib reshard命令。因為reshard命令只能有一個目標節(jié)點,所以我們要遷移4096槽時,需要執(zhí)行3次reshard命令。因為要保證遷移槽均勻的遷移到其它節(jié)點上,所以我們將上面4096個槽分別遷移1365、1365、1366個槽。

下面我們將6381的槽遷移到6379中:

Redis集群收縮的概念和流程

當槽遷移完成后,我們可以查看6379節(jié)點已經負責了新遷移的槽了。

Redis集群收縮的概念和流程

下面我們用同樣的方式,我們將1365的槽遷移到6380中:

Redis集群收縮的概念和流程

查看6380節(jié)點現在負責的槽。

Redis集群收縮的概念和流程

我們還是用同樣的方式,將1366的槽遷移到6382中:

Redis集群收縮的概念和流程

繼續(xù)查看6382節(jié)點負責的槽。

Redis集群收縮的概念和流程

并且通過上圖所示,我們已經知道了6381節(jié)點現在已經不負責任何槽了。下面我們繼續(xù)流程的第二步驟,也就是將要下線的節(jié)點槽遷移完成后,還需要讓集群忘記該下線的節(jié)點。


忘記節(jié)點

因為我們之前介紹過集群內的節(jié)點是不停的通過Gossip消息彼此交換節(jié)點狀態(tài),所以要讓集群內其它節(jié)點忘記下線節(jié)點就是要讓其它節(jié)點不再與要下線的節(jié)點進行Gossip消息交換。在Redis中我們使用cluster forget {downNodeId}命令。


當節(jié)點接受到cluster forget {downNodeId}命令后,會把nodeId指定的節(jié)點加入到禁用列表中,在禁用列表內的節(jié)點不再發(fā)送Gossip消息。禁用列表的有效期是60秒,超過60秒節(jié)點會繼續(xù)參與消息交換。所以讓要集群內其它節(jié)點忘記下線節(jié)點就是在這60秒之內操作。在實際的操作中如果使用cluster forget {downNodeId}命令下線節(jié)點時,因為會涉及到大量節(jié)點命令交互,并且還有60秒的限制,所以有可能會造成遺漏。所以在實際的操作中我們不會使用cluster forget {downNodeId}命令下線節(jié)點。我們會使用redis-trib.rb del-node {host:port} {downNodeId}命令。


備注:建議在使用redis-trib.rb del-node {host:port} {downNodeId}命令下線節(jié)點時,優(yōu)先下線從節(jié)點,然后在下線主節(jié)點,以免不必要的復制發(fā)生。所以下面我們優(yōu)先下線6383節(jié)點其次下線和6381節(jié)點。

Redis集群收縮的概念和流程

當節(jié)點下線后,我們可以在次查看集群節(jié)點狀態(tài),我們此時發(fā)現剛剛的那個6381節(jié)點已經沒有在集群中了。

Redis集群收縮的概念和流程

這就是Redis收縮集群的全部內容,說白了也就是下線部分集群節(jié)點功能。這在我們實際的開發(fā)中很有必要,掌握集群擴容和收縮集群,可以為我們在實際的場景中做出從容應對。

“Redis集群收縮的概念和流程”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯網站,小編將為大家輸出更多高質量的實用文章!

網頁名稱:Redis集群收縮的概念和流程
本文URL:http://www.muchs.cn/article24/pcooje.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站排名面包屑導航、關鍵詞優(yōu)化、建站公司App設計、網站收錄

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

手機網站建設