自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么代理架構(gòu)常作為緩存實(shí)現(xiàn)方案

數(shù)據(jù)庫 Redis
本文主要走查了Redis的集群模式的故障發(fā)現(xiàn)、故障轉(zhuǎn)移流程。由于Redis集群模式中存在過高的通信成本。集群代理模式也常常作為自建緩存集群的方案。
一、Redis集群模式的故障發(fā)現(xiàn)

Redis集群模式故障發(fā)現(xiàn)過程有主觀下線與客觀下線。

主觀下線簡單來說就是我這個(gè)節(jié)點(diǎn)認(rèn)為你故障了。

客觀下線則是集群中大多數(shù)節(jié)點(diǎn)認(rèn)為你故障了。

這些判定與狀態(tài)的同步均通過Gossip協(xié)議PING/PONG來通信。

主觀下線流程

  • @1 定時(shí)向集群中其他節(jié)點(diǎn)發(fā)送PING消息
  • @2 超過時(shí)間(cluster-node-timeout)未收到接受節(jié)點(diǎn)PONG響應(yīng)消息
  • @3 認(rèn)為該接受節(jié)點(diǎn)存在故障,標(biāo)記為主觀下線狀態(tài)pfail

圖片

客觀下線流程

  • @1 Gossip協(xié)議PING/PONG通信

攜帶集群1/10的其他節(jié)點(diǎn)狀態(tài)

當(dāng)然也包含主觀下線節(jié)點(diǎn)的信息

  • @2 接受節(jié)點(diǎn)維護(hù)故障節(jié)點(diǎn)下線報(bào)告

只處理發(fā)送為主節(jié)點(diǎn)的請(qǐng)求,從節(jié)點(diǎn)不處理

不存在故障節(jié)點(diǎn)下線報(bào)告,新增下線報(bào)告

已存在故障節(jié)點(diǎn)下線報(bào)告,更新報(bào)告時(shí)間

  • @3 嘗試故障節(jié)點(diǎn)的客觀下線邏輯

每次收到其他節(jié)點(diǎn)的故障狀態(tài)pfail時(shí),均會(huì)嘗試客觀下線

監(jiān)測故障下線報(bào)告是否過期,過期的報(bào)告將被刪除

報(bào)告時(shí)間超過cluster-node-timeout*2未被更新將被移除

下線報(bào)告數(shù)量小于持有槽主節(jié)點(diǎn)的數(shù)量的二分之一,退出客觀下線

下線報(bào)告數(shù)量大于持有槽主節(jié)點(diǎn)的數(shù)量的二分之一,標(biāo)記客觀下線

向集群廣播一條fail消息(標(biāo)記客觀下線立即生效、故障從節(jié)點(diǎn)發(fā)起故障轉(zhuǎn)移流程)

圖片

二、Redis集群模式的故障轉(zhuǎn)移

Redis集群模式從節(jié)點(diǎn)的作用用于災(zāi)備,主節(jié)點(diǎn)故障時(shí)能夠替換頂上去。

  • Redis的從節(jié)點(diǎn)當(dāng)然也不例外。
  • 多個(gè)從節(jié)點(diǎn)誰去替換主節(jié)點(diǎn)?

選舉邏輯以及選舉失效是怎么樣的?

故障轉(zhuǎn)移流程

從節(jié)點(diǎn)中復(fù)制的偏移量越大,替換主節(jié)點(diǎn)的優(yōu)先級(jí)越高。

從節(jié)點(diǎn)獲得持有槽的主節(jié)點(diǎn)一半以上的選票,可替換為主節(jié)點(diǎn)。

從節(jié)點(diǎn)向集群廣播PONG消息,通知該變更。

圖片

三、常見緩存代理架構(gòu)方案簡述

Redis的集群模式客戶端直連集群,不需要額外的組件,運(yùn)維難度較低。

由于集群中每個(gè)實(shí)例都需要保存路由信息,彼此不斷傳播通信更新,也造成通信成本進(jìn)而影響集群規(guī)模。

Redis的集群模式也會(huì)造成客戶端需要重定向,帶來復(fù)雜性。

因此,緩存代理模式可以解決這種復(fù)雜性,當(dāng)然組件也會(huì)增多。

客服端:兼容RESP協(xié)議的輕量級(jí)客戶端。

集群代理:負(fù)責(zé)域客戶端建立連接,以及轉(zhuǎn)發(fā)請(qǐng)求到對(duì)應(yīng)的槽位和實(shí)例節(jié)點(diǎn)。

元數(shù)據(jù)中心:主要負(fù)責(zé)存儲(chǔ)槽位與實(shí)例對(duì)應(yīng)路由信息以及健康檢查心跳探測。

集群模式一:集群部署主從架構(gòu),需要元數(shù)中心負(fù)責(zé)心跳的健康監(jiān)測,主從節(jié)點(diǎn)的HA,當(dāng)主節(jié)點(diǎn)故障切換從節(jié)點(diǎn)接管。

集群模式二:集群部署Raft組,不需要額外的HA心跳監(jiān)測,集群自閉環(huán),三個(gè)節(jié)點(diǎn)一組成本較高。

模式一

圖片

模式二

圖片

兼容RESP協(xié)議的輕量級(jí)客戶端與代理建立長鏈接。

發(fā)送讀寫請(qǐng)求到代理層,代理根據(jù)路由規(guī)則將key路由到對(duì)應(yīng)集群的槽位。

管理平臺(tái)可對(duì)元數(shù)據(jù)信息、槽位分配、代理以及集群部署運(yùn)維等進(jìn)行管理。

可視化白屏化對(duì)整個(gè)集群的監(jiān)控、告警、大key等水位監(jiān)控告警。

責(zé)任編輯:武曉燕 來源: 瓜農(nóng)老梁
相關(guān)推薦

2021-03-16 21:42:37

反向代理正向代理

2018-11-12 12:12:15

架構(gòu)師緩存數(shù)據(jù)庫

2024-02-04 16:51:47

2023-12-05 09:14:54

2023-07-05 08:17:38

JDK動(dòng)態(tài)代理接口

2015-08-10 13:25:38

編程寫作

2024-03-14 10:43:23

.NET CoreRedis數(shù)據(jù)庫

2015-12-28 10:35:59

碼農(nóng)寫作

2023-02-03 08:36:35

2024-02-01 08:32:03

Nginx服務(wù)器代理

2015-09-22 11:09:47

Java 8動(dòng)態(tài)代理

2023-10-09 08:24:54

IPC機(jī)制Binder

2022-01-26 00:00:00

GoGopher語言

2022-02-22 22:44:46

接口源碼對(duì)象

2022-05-23 10:11:36

HTTP緩存

2012-05-15 15:44:00

Silverlight

2022-11-08 10:36:02

戴爾

2021-04-14 14:48:16

比特幣區(qū)塊鏈工具

2015-07-30 11:09:12

架構(gòu)開源

2022-08-26 08:00:19

企業(yè)架構(gòu)IT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)