婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺析redis cluster介紹與gossip協(xié)議

淺析redis cluster介紹與gossip協(xié)議

熱門標簽:廊坊外呼系統(tǒng)在哪買 四川穩(wěn)定外呼系統(tǒng)軟件 400電話辦理的口碑 臺灣電銷 一個地圖標注多少錢 地圖標注工廠入駐 高碑店市地圖標注app 南京手機外呼系統(tǒng)廠家 b2b外呼系統(tǒng)

一、redis cluster 介紹

  • 自動將數據進行分片,每個 master 上放一部分數據
  • 提供內置的高可用支持,部分 master 不可用時,還是可以繼續(xù)工作的

redis cluster架構下的每個redis都要開放兩個端口號,比如一個是6379,另一個就是加1w的端口號16379。

  • 6379端口號就是redis服務器入口。
  • 16379端口號是用來進行節(jié)點間通信的,也就是 cluster bus 的東西,cluster bus 的通信,用來進行故障檢測、配置更新、故障轉移授權。cluster bus 用的是一種叫gossip 協(xié)議的二進制協(xié)議,用于節(jié)點間高效的數據交換,占用更少的網絡帶寬和處理時間。

二、節(jié)點間的內部通信機制

集群元數據的維護有兩種方式:集中式、Gossip 協(xié)議。
redis cluster 節(jié)點間采用 gossip 協(xié)議進行通信。

1. 集中式

將集群元數據集中存儲在一個節(jié)點上。典型代表是大數據領域的 storm。它是分布式的大數據實時計算引擎,是集中式的元數據存儲的結構,底層基于 zookeeper對所有元數據進行存儲維護。

優(yōu)點

元數據的讀取和更新時效性非常好,元數據的變更都能立即更新到集中式存儲節(jié)點中,其它節(jié)點讀取的時候就可以感知到;

缺點

所有的元數據的更新壓力全部集中在一個地方,可能會導致元數據的存儲有壓力。

2. gossip 協(xié)議

redis 維護集群元數據采用的是gossip 協(xié)議,所有節(jié)點都持有一份元數據,不同的節(jié)點如果出現了元數據的變更,就不斷將元數據發(fā)送給其它的節(jié)點,讓其它節(jié)點也進行元數據的變更。

優(yōu)點

元數據的更新比較分散,不是集中在一個地方,降低了壓力;

缺點

元數據的更新有延時,可能導致集群中的一些操作會有一些滯后。


三、深入剖析gossip 協(xié)議

gossip 協(xié)議包含多種消息,包含 ping、pong、meet、fail等等。

meet:某個節(jié)點在內部發(fā)送了一個gossip meet 消息給新加入的節(jié)點,通知那個節(jié)點去加入我們的集群。然后新節(jié)點就會加入到集群的通信中

redis-trib.rb add-node
  • ping:每個節(jié)點都會頻繁給其它節(jié)點發(fā)送 ping,其中包含自己的狀態(tài)還有自己維護的集群元數據,互相通過 ping 交換元數據。
  • pong:ping 和 meet消息的返回響應,包含自己的狀態(tài)和其它信息,也用于信息廣播和更新。
  • fail:某個節(jié)點判斷另一個節(jié)點 fail 之后,就發(fā)送 fail 給其它節(jié)點,通知其它節(jié)點說這個節(jié)點已宕機。

繼續(xù)深入剖析ping消息

  • ping 時要攜帶一些元數據,如果很頻繁,可能會加重網絡負擔。因此,一般每個節(jié)點每秒會執(zhí)行 10 次 ping,每次會選擇 5 個最久沒有通信的其它節(jié)點。
  • 當然如果發(fā)現某個節(jié)點通信延時達到了 cluster_node_timeout / 2,那么立即發(fā)送 ping,避免數據交換延時過長導致信息嚴重滯后。比如說,兩個節(jié)點之間都 10 分鐘沒有交換數據了,那么整個集群處于嚴重的元數據不一致的情況,就會有問題。所以 cluster_node_timeout 可以調節(jié),如果調得比較大,那么會降低 ping 的頻率。
  • 每次 ping,會帶上自己節(jié)點的信息,還有就是帶上 1/10 其它節(jié)點的信息,發(fā)送出去,進行交換。至少包含 3 個其它節(jié)點的信息,最多包含 總節(jié)點數減 2 個其它節(jié)點的信息。

10000 端口:
每個節(jié)點都有一個專門用于節(jié)點間通信的端口,就是自己提供服務的端口號+10000,比如 6379,那么用于節(jié)點間通信的就是16379端口。每個節(jié)點每隔一段時間都會往另外幾個節(jié)點發(fā)送 ping 消息,同時其它幾個節(jié)點接收到 ping 之后返回 pong。
交換的信息:信息包括故障信息,節(jié)點的增加和刪除,hash slot 信息等等。

總結

到此這篇關于redis cluster介紹與gossip協(xié)議的文章就介紹到這了,更多相關redis cluster和gossip協(xié)議內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • redis 主從備份及其主備切換的操作
  • 詳解SpringBoot Redis自適應配置(Cluster Standalone Sentinel)
  • Redis Cluster集群數據分片機制原理
  • docker redis5.0 cluster集群搭建的實現
  • 使用Ruby腳本部署Redis Cluster集群步驟講解
  • Redis Cluster的圖文講解
  • php成功操作redis cluster集群的實例教程
  • Redis Cluster集群主從切換的踩坑與填坑

標簽:甘南 畢節(jié) 南寧 泰州 河源 拉薩 伊春 定州

巨人網絡通訊聲明:本文標題《淺析redis cluster介紹與gossip協(xié)議》,本文關鍵詞  淺析,redis,cluster,介紹,與,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺析redis cluster介紹與gossip協(xié)議》相關的同類信息!
  • 本頁收集關于淺析redis cluster介紹與gossip協(xié)議的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 长阳| 磐安县| 义乌市| 泗洪县| 商水县| 宁南县| 兴安县| 靖远县| 林芝县| 乃东县| 托克托县| 新津县| 阜平县| 台山市| 湟源县| 攀枝花市| 余江县| 绥江县| 凤庆县| 昭觉县| 建瓯市| 京山县| 图片| 色达县| 衡水市| 九龙城区| 浮山县| 叶城县| 顺义区| 安岳县| 新密市| 和政县| 华安县| 德格县| 洱源县| 红安县| 禹州市| 且末县| 临泽县| 平湖市| 灵丘县|