一、redis cluster 介紹
redis cluster架構(gòu)下的每個(gè)redis都要開(kāi)放兩個(gè)端口號(hào),比如一個(gè)是6379,另一個(gè)就是加1w的端口號(hào)16379。
二、節(jié)點(diǎn)間的內(nèi)部通信機(jī)制
集群元數(shù)據(jù)的維護(hù)有兩種方式:集中式、Gossip 協(xié)議。
redis cluster 節(jié)點(diǎn)間采用 gossip 協(xié)議進(jìn)行通信。
1. 集中式
將集群元數(shù)據(jù)集中存儲(chǔ)在一個(gè)節(jié)點(diǎn)上。典型代表是大數(shù)據(jù)領(lǐng)域的 storm。它是分布式的大數(shù)據(jù)實(shí)時(shí)計(jì)算引擎,是集中式的元數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu),底層基于 zookeeper對(duì)所有元數(shù)據(jù)進(jìn)行存儲(chǔ)維護(hù)。
優(yōu)點(diǎn)
元數(shù)據(jù)的讀取和更新時(shí)效性非常好,元數(shù)據(jù)的變更都能立即更新到集中式存儲(chǔ)節(jié)點(diǎn)中,其它節(jié)點(diǎn)讀取的時(shí)候就可以感知到;
缺點(diǎn)
所有的元數(shù)據(jù)的更新壓力全部集中在一個(gè)地方,可能會(huì)導(dǎo)致元數(shù)據(jù)的存儲(chǔ)有壓力。
2. gossip 協(xié)議
redis 維護(hù)集群元數(shù)據(jù)采用的是gossip 協(xié)議,所有節(jié)點(diǎn)都持有一份元數(shù)據(jù),不同的節(jié)點(diǎn)如果出現(xiàn)了元數(shù)據(jù)的變更,就不斷將元數(shù)據(jù)發(fā)送給其它的節(jié)點(diǎn),讓其它節(jié)點(diǎn)也進(jìn)行元數(shù)據(jù)的變更。
優(yōu)點(diǎn)
元數(shù)據(jù)的更新比較分散,不是集中在一個(gè)地方,降低了壓力;
缺點(diǎn)
元數(shù)據(jù)的更新有延時(shí),可能導(dǎo)致集群中的一些操作會(huì)有一些滯后。
三、深入剖析gossip 協(xié)議
gossip 協(xié)議包含多種消息,包含 ping、pong、meet、fail等等。
meet:某個(gè)節(jié)點(diǎn)在內(nèi)部發(fā)送了一個(gè)gossip meet 消息給新加入的節(jié)點(diǎn),通知那個(gè)節(jié)點(diǎn)去加入我們的集群。然后新節(jié)點(diǎn)就會(huì)加入到集群的通信中
redis-trib.rb add-node
繼續(xù)深入剖析ping消息
10000 端口:
每個(gè)節(jié)點(diǎn)都有一個(gè)專(zhuān)門(mén)用于節(jié)點(diǎn)間通信的端口,就是自己提供服務(wù)的端口號(hào)+10000,比如 6379,那么用于節(jié)點(diǎn)間通信的就是16379端口。每個(gè)節(jié)點(diǎn)每隔一段時(shí)間都會(huì)往另外幾個(gè)節(jié)點(diǎn)發(fā)送 ping 消息,同時(shí)其它幾個(gè)節(jié)點(diǎn)接收到 ping 之后返回 pong。
交換的信息:信息包括故障信息,節(jié)點(diǎn)的增加和刪除,hash slot 信息等等。
總結(jié)
到此這篇關(guān)于redis cluster介紹與gossip協(xié)議的文章就介紹到這了,更多相關(guān)redis cluster和gossip協(xié)議內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:甘南 畢節(jié) 南寧 泰州 河源 拉薩 伊春 定州
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺析redis cluster介紹與gossip協(xié)議》,本文關(guān)鍵詞 淺析,redis,cluster,介紹,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。