亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原(yuan)創

分布式系統心跳設計(二)

2023-06-20 08:57:14
54
0

心跳Server端設計:

     server端的(de)心(xin)(xin)跳設計(ji)要稍微復雜一(yi)些,為了保證server端主從切(qie)換(huan)過程中,client不發(fa)生斷連。client端與(yu)server在建立(li)心(xin)(xin)跳時,server端需(xu)要將心(xin)(xin)跳信息進行(xing)持久化。因此server的(de)心(xin)(xin)跳需(xu)要依賴(lai)一(yi)個可(ke)靠的(de)存儲系(xi)統(tong),一(yi)般選(xuan)擇(ze)zookeeper,etcd這種分布式協調組件。

 

與server的心跳建立:

 

  a.  worker2啟(qi)動后只有(you)master的列(lie)表,并不(bu)知道哪(na)個(ge)是(shi)leader,因(yin)此先廣播bootstrap信(xin)息。

  b.  只(zhi)有(you)leader節點(dian)響(xiang)應bootstrap信息,leader生成session id并持(chi)久(jiu)化,只(zhi)有(you)持(chi)久(jiu)化成功后才可以返(fan)回(hui)bootstrap ack 給worker2,并標記worker2為Up。

  c.  leader將分配的(de)(de)session id 自己(ji)的(de)(de)epoch等信息(xi)返回給(gei)worker2。worker2收到(dao)ack信息(xi)本地記錄leader的(de)(de)epoch,sessionid等信息(xi)作為后續發送(song)心跳的(de)(de)憑證(zheng),并進入connected狀態。 

  d. bootstrap ack消息還需要攜帶(dai),心(xin)跳超時時間(jian),假心(xin)跳超時時間(jian)。

 

server端故障切主:

a. leader故障后(hou),新的(de)leader接管了業務,并且(qie)從持久化存(cun)儲中load起worker2的(de)相關信息,主要(yao)是sessionid信息。

b. 新leader加載(zai)worker2的心跳信息(xi)后,會(hui)重新計時,只要worker2在(zai)超時時間內重新發(fa)送(song)心跳就(jiu)不會(hui)產生斷連事(shi)件。

c.  為了server切(qie)主過(guo)程中,不對原有(you)心跳有(you)影響,server端故障切(qie)換時延一般設置為,server端與client端心跳的(de)0.6.

d. worker2收到(dao)新(xin)的HB ack后(hou)更(geng)新(xin)新(xin)的leader地址與epoch信息,整個流程(cheng)對外是透明的。

leader與worker同時故障:

   因為存在(zai)leader與worker同時故(gu)障場景,例如:worker與leader在(zai)同一臺服(fu)務(wu)器(qi),而服(fu)務(wu)器(qi)掉(diao)電或者(zhe)服(fu)務(wu)器(qi)重啟(qi)。這種場景下我們也(ye)要求故(gu)障檢(jian)測也(ye)可以(yi)發現worker發生過故(gu)障。

 

a.  leader與worker2 同時故障(zhang),leader切主并加(jia)載worker2的(de)心跳(tiao)信(xin)息。

b.  這時新(xin)leader不會認(ren)為worker2發生了故障,而(er)是會重新(xin)計時,等待(dai)worker2的HB消息(xi)。

c.  由于worker2故障了(le),因此(ci)新leader等不(bu)到worker2的HB消息,最(zui)終(zhong)會(hui)導致(zhi)leader發現worker2超時。

d.  即使(shi)在(zai)超(chao)時(shi)時(shi)間(jian)內,worker2重啟,worker2重啟后會(hui)(hui)先發送bootstrap消(xiao)息(xi),新leader收到worker2的bootstrap消(xiao)息(xi)后會(hui)(hui)先忽略,因(yin)為此時(shi)worker2還(huan)在(zai)Up狀態,不會(hui)(hui)接(jie)收bootstrap消(xiao)息(xi)只會(hui)(hui)接(jie)收HB消(xiao)息(xi)。

e.  等leader發現(xian)worker2超時后,將worker2的(de)狀態設(she)置(zhi)為down,這時worker2的(de)bootstrap消息才會被處理。

從上面(mian)的(de)(de)流(liu)程可(ke)以看出,無論leader和worker如何故障(zhang),都不會(hui)影響故障(zhang)事(shi)件(jian)的(de)(de)檢測(ce)(ce),最終都會(hui)檢測(ce)(ce)出來,只是有可(ke)能延遲。

0條評論
0 / 1000
白楊
2文章數
0粉絲數
白楊
2 文章 | 0 粉(fen)絲
白楊
2文(wen)章數
0粉絲數(shu)
白楊
2 文章 | 0 粉(fen)絲(si)
原創(chuang)

分布式系統心跳設計(二)

2023-06-20 08:57:14
54
0

心跳Server端設計:

     server端(duan)的(de)心(xin)跳(tiao)(tiao)設(she)計要(yao)稍微(wei)復(fu)雜(za)一(yi)些(xie),為了保證server端(duan)主(zhu)從切(qie)換過程中(zhong),client不發生斷(duan)連(lian)。client端(duan)與server在(zai)建立(li)心(xin)跳(tiao)(tiao)時,server端(duan)需(xu)(xu)要(yao)將(jiang)心(xin)跳(tiao)(tiao)信息進(jin)行持久化。因此(ci)server的(de)心(xin)跳(tiao)(tiao)需(xu)(xu)要(yao)依賴(lai)一(yi)個(ge)可(ke)靠的(de)存儲系統(tong),一(yi)般選(xuan)擇(ze)zookeeper,etcd這種分(fen)布(bu)式協調(diao)組(zu)件。

 

與server的心跳建立:

 

  a.  worker2啟動(dong)后只有master的(de)列表(biao),并不(bu)知道哪(na)個是(shi)leader,因(yin)此(ci)先(xian)廣(guang)播bootstrap信息(xi)。

  b.  只(zhi)有leader節(jie)點(dian)響應(ying)bootstrap信息,leader生成session id并持久化,只(zhi)有持久化成功后才可(ke)以返回bootstrap ack 給worker2,并標(biao)記worker2為Up。

  c.  leader將分配的session id 自己(ji)的epoch等信息(xi)返回給worker2。worker2收到ack信息(xi)本地記錄(lu)leader的epoch,sessionid等信息(xi)作為后續發送心(xin)跳的憑證,并進(jin)入connected狀態。 

  d. bootstrap ack消息還(huan)需(xu)要攜帶,心跳超(chao)時(shi)時(shi)間,假心跳超(chao)時(shi)時(shi)間。

 

server端故障切主:

a. leader故障后,新的(de)leader接管了(le)業務,并且從持久化存儲中load起worker2的(de)相(xiang)關信(xin)息,主(zhu)要是sessionid信(xin)息。

b. 新leader加載worker2的心跳(tiao)信息(xi)后,會重(zhong)新計時(shi),只要(yao)worker2在超時(shi)時(shi)間內重(zhong)新發(fa)送心跳(tiao)就(jiu)不(bu)會產生斷連事件。

c.  為(wei)了server切(qie)主(zhu)過程中,不對原有(you)心跳有(you)影響,server端故障(zhang)切(qie)換時(shi)延一般設置為(wei),server端與client端心跳的(de)0.6.

d. worker2收到新(xin)的HB ack后更新(xin)新(xin)的leader地(di)址與epoch信息,整個流程對(dui)外是透明的。

leader與worker同時故障:

   因為存在leader與(yu)worker同時故障場景,例如:worker與(yu)leader在同一臺服務(wu)(wu)器(qi),而(er)服務(wu)(wu)器(qi)掉電或者服務(wu)(wu)器(qi)重啟。這(zhe)種(zhong)場景下(xia)我(wo)們也要求故障檢(jian)測也可以發現worker發生過(guo)故障。

 

a.  leader與worker2 同(tong)時故(gu)障,leader切(qie)主并加載worker2的(de)心跳(tiao)信息。

b.  這時新leader不(bu)會認為(wei)worker2發(fa)生(sheng)了(le)故障,而(er)是會重新計時,等(deng)待worker2的HB消息(xi)。

c.  由于worker2故障了(le),因此新leader等不到(dao)worker2的HB消息(xi),最終會導致leader發現worker2超時。

d.  即使在超(chao)時時間內(nei),worker2重啟(qi),worker2重啟(qi)后會(hui)先發送bootstrap消(xiao)息(xi),新leader收(shou)到worker2的bootstrap消(xiao)息(xi)后會(hui)先忽略,因為(wei)此時worker2還在Up狀(zhuang)態,不會(hui)接收(shou)bootstrap消(xiao)息(xi)只(zhi)會(hui)接收(shou)HB消(xiao)息(xi)。

e.  等leader發現worker2超時(shi)(shi)后,將worker2的狀態設(she)置為(wei)down,這時(shi)(shi)worker2的bootstrap消息(xi)才會被處理。

從上面的流程(cheng)可以(yi)看(kan)出,無論(lun)leader和worker如(ru)何(he)故(gu)障(zhang),都(dou)不會影響故(gu)障(zhang)事件的檢(jian)測(ce),最終(zhong)都(dou)會檢(jian)測(ce)出來,只(zhi)是有(you)可能延遲。

文章來自個人專欄
文章 | 訂閱(yue)
0條評論
0 / 1000
請輸入你的評論
1
1