国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè)整個過程個人介紹網(wǎng)頁制作

網(wǎng)站建設(shè)整個過程,個人介紹網(wǎng)頁制作,網(wǎng)上做網(wǎng)站兼職,沈陽德泰諾網(wǎng)站建設(shè)公司 概況簡介在分布式系統(tǒng)中,最常見的場景就是主備架構(gòu)。但是如果主機(jī)不幸宕機(jī),如何正確的通知客戶端當(dāng)前后端服務(wù)器的狀況成為一個值得研究的問題。本文描述了一種簡單的模型用于解決此問題。背景以一個分布式的Key-Value數(shù)據(jù)庫為背景。數(shù)據(jù)庫對外提供3個接口Ge…

簡介在分布式系統(tǒng)中,最常見的場景就是主備架構(gòu)。但是如果主機(jī)不幸宕機(jī),如何正確的通知客戶端當(dāng)前后端服務(wù)器的狀況成為一個值得研究的問題。本文描述了一種簡單的模型用于解決此問題。

背景

以一個分布式的Key-Value數(shù)據(jù)庫為背景。數(shù)據(jù)庫對外提供3個接口Get(key)Put(key, value)Append(key, value)客戶端對數(shù)據(jù)庫的操作請求必須發(fā)往主機(jī), 只有當(dāng)主機(jī)不可訪問(主機(jī)宕機(jī)或網(wǎng)絡(luò)問題)時,備機(jī)代替主機(jī),并且再從集群中選一個新的機(jī)器作為備機(jī)。問題來了 客戶端如何知道當(dāng)前誰是主機(jī)誰是備機(jī)?

目的

為了保證客戶端與服務(wù)器就誰是主機(jī)誰是備機(jī)這個問題達(dá)成共識。

整體架構(gòu)

為了解決這個問題,我們在Server和Clint中間加入一個ViewServer。viewserver的作用相當(dāng)于一個中介。舉個例子,當(dāng)客戶端想要執(zhí)行Put操作時,需要先向viewserver詢問當(dāng)前的Primary是誰,隨后客戶端根據(jù)viewserver的回復(fù)將Put請求發(fā)到相應(yīng)的server。

View

viewserver返回給客戶端的信息需要包含至少3條信息:

1. 當(dāng)前主機(jī)是誰

2. 當(dāng)前備機(jī)是誰

3. 當(dāng)前狀態(tài)的版本號

我們將這3個信息稱為viewserver的當(dāng)前View。

typedef struct View {Viewnum intPrimary stringBackup string}

Copy

Server

在多個server中,只有一個主機(jī),一個備機(jī),其余的server都處于空閑狀態(tài)。所有的server都需要每隔一段時間向viewserver發(fā)送Ping消息,以證明自己還活著。并且通過Ping的返回值,得到當(dāng)前viewserver認(rèn)為的主機(jī)和備機(jī)是誰。這樣,如果主機(jī)和備機(jī)都正常,在一段時間之后,后端server都會有一致的主機(jī)和備機(jī)。

Client

在操作后端server之前,先訊問viewserver當(dāng)前主機(jī)是誰.

ViewServer

viewserver的功能比較復(fù)雜,主要負(fù)責(zé):

  1. 回復(fù)客戶端當(dāng)前View

  1. 檢測后端的server的存活情況

  1. 保證當(dāng)前主機(jī)得到最新的View

在檢測后端server存活情況時,有幾種情況

  1. 主機(jī)Primary失聯(lián)

  1. 備機(jī)Backup失聯(lián)

  1. 空閑機(jī)器失聯(lián)

當(dāng)檢測到主機(jī)或者備機(jī)失聯(lián)時,viewserver應(yīng)該對當(dāng)前View做調(diào)整。如果主機(jī)失聯(lián),則把備機(jī)選做主機(jī),然后從空間機(jī)器中挑選一個作為備機(jī)。如果備機(jī)失聯(lián),只從空閑機(jī)器中選擇一個作為備機(jī)即可。但是,這兩種情況都需要對View的版本號進(jìn)行增加。這個View版本號只有后端server關(guān)心,客戶端只關(guān)心當(dāng)前主機(jī)。加入這個版本號的目的,主要是為了確保當(dāng)前主機(jī)得到了最新的View。比如備機(jī)的更換會需要主機(jī)向備機(jī)做數(shù)據(jù)拷貝,如果主機(jī)得不到這個消息,整個主備系統(tǒng)就失效了。

上圖描述了兩臺server與viewserver之間的通信.

每次server端Ping需要包含一個參數(shù),用于表示當(dāng)前這個server所了解到了View版本號.

1. 在初始狀態(tài),server1向viewserver發(fā)送Ping,并且用0做為參數(shù).由于初始狀態(tài)viewserver還沒有選擇主機(jī)和備機(jī),所以先到先得,選擇server1為主機(jī).于是返回給server1的View為[server1, NULL, 1], 表示當(dāng)前主機(jī)為server1, 備機(jī)為NULL, 望的到的版本號為1(希望一段時間后當(dāng)前的主機(jī)Primary以這個新版本號發(fā)起Ping).

2. server2此時加入了集群,向viewserver發(fā)送了Ping. 由于server2與server1沒有聯(lián)系,所以Ping的參數(shù)還是用0,表示這是新加入的機(jī)器.雖然此時viewserver發(fā)現(xiàn)又有了一臺機(jī)器加入,并且當(dāng)前只有主機(jī),沒有備機(jī),但是還不能選擇server2做為備機(jī).因為server1還沒有用1做為參數(shù)發(fā)起Ping, 說明viewserver當(dāng)前的這個View(主機(jī)為server1,備機(jī)為NULL)可能還沒有被當(dāng)前主機(jī)(server1)收到.因此返回給server2的View為[server1, NULL, 1].

3. server1順利收到viewserver返回的View,得知viewserver想要版本號為1的Ping, 于是隔一個PingInerval再向viewserver發(fā)起Ping,同時以1為參數(shù). viewserver順利收到這個Ping, 發(fā)現(xiàn)正是自己希望得到的(當(dāng)前主機(jī)以新版本號發(fā)起的Ping), 并且了解到一個事實:當(dāng)前主機(jī)server1已經(jīng)知道了當(dāng)前最新的主備情況.于是viewserver將View的版本號更新.返回給server1[server1, NULL, 2].

4. server2在一個PingInterval后再次向viewser發(fā)起Ping, 因為之前一次Ping返回的ViewNum為1, 因此用1為參數(shù).當(dāng)viewserver順利收到Ping時,由于viewserver知道當(dāng)前主機(jī)server1以經(jīng)獲得了它目前保存的這個狀態(tài),因此將server2選為備機(jī), 構(gòu)成了一個新的狀態(tài)(主機(jī)為server1, 備機(jī)為server2), 這個狀態(tài)還沒有任何server知道, 當(dāng)前的主機(jī)server1顯然也不知道.因此ViewNum不能更新.于是返回[server1, server2, 2]給server2.

5. server1向viewserver發(fā)起Ping(2), viewserver通過這個Ping得知當(dāng)前主機(jī)server1以經(jīng)獲得了自己最新的狀態(tài).然后server1失聯(lián).

6. server2向viewserver發(fā)起Ping(2)

在長期沒有的到server1的Ping后,viewserver會認(rèn)為server1以經(jīng)不能繼續(xù)對外提供服務(wù)了,于是選擇備機(jī)server2做為主機(jī),如果有其他空閑機(jī)器,可以從中選一個做為新的備機(jī).viewserver之所以選擇server2做為備機(jī)是因為確定server2可以萬全代替以經(jīng)失聯(lián)的server1, 因為server2做為備機(jī)這個信息server1以經(jīng)收到了,確保server2的狀態(tài)與server1相同是server1的工作,比如主機(jī)會向備機(jī)發(fā)送數(shù)據(jù)做數(shù)據(jù)同步.

存在的問題

If the view service has not yet received an acknowledgment for the current view from the primary of the current view, the view service should not change views even if it thinks that the primary or backup has died. That is, the view service may not proceed from view X to view X+1 if it has not received a Ping(X) from the primary of view X.

http://m.aloenet.com.cn/news/41781.html

相關(guān)文章:

  • 做外貿(mào)在哪個網(wǎng)站北京百度推廣電話號碼
  • 上海阿里巴巴做網(wǎng)站免費(fèi)的短視頻app大全下載
  • 商業(yè)網(wǎng)站改版需要多久愛站網(wǎng)綜合查詢
  • 無錫工廠網(wǎng)站建設(shè)南寧百度關(guān)鍵詞推廣
  • 松江營銷型網(wǎng)站建設(shè)b站是哪個網(wǎng)站
  • ui設(shè)計做兼職的網(wǎng)站如何寫市場調(diào)研報告
  • 女裝網(wǎng)站建設(shè)規(guī)劃網(wǎng)站怎樣被百度收錄
  • 怎么做網(wǎng)站的后臺管理系統(tǒng)手機(jī)360優(yōu)化大師官網(wǎng)
  • 微網(wǎng)站后臺怎么注冊互聯(lián)網(wǎng)推廣平臺有哪些公司
  • 辦公室現(xiàn)代簡約裝修效果圖武漢seo服務(wù)
  • 金山石化網(wǎng)站建設(shè)襄陽seo優(yōu)化排名
  • 做網(wǎng)站建設(shè)的上市公司有哪些百度競價是seo還是sem
  • lamp網(wǎng)站開發(fā) pdf企業(yè)網(wǎng)站建設(shè)需求分析
  • 做便民工具網(wǎng)站怎么樣百度問答兼職怎么做
  • 網(wǎng)站怎么防采集如何推廣普通話
  • 長子營網(wǎng)站建設(shè)產(chǎn)品優(yōu)化是什么意思
  • 做3d模型的叫什么牛的網(wǎng)站磁力鏈搜索引擎入口
  • 黃色風(fēng)格網(wǎng)站模板商城小程序
  • 十堰網(wǎng)站建設(shè)兼職發(fā)軟文的平臺
  • 長沙的互聯(lián)網(wǎng)網(wǎng)站公司營銷培訓(xùn)方案
  • 門戶網(wǎng)站系統(tǒng)設(shè)計sem全稱
  • wordpress qq客服代碼seo有什么作用
  • 廣州網(wǎng)站提升排名百度指數(shù)使用指南
  • 做發(fā)票網(wǎng)站淘寶如何刷關(guān)鍵詞增加權(quán)重
  • 可視化網(wǎng)站建設(shè)軟件百度競價品牌廣告
  • 專業(yè) 網(wǎng)站設(shè)計公司外貿(mào)網(wǎng)站seo教程
  • 北京公司網(wǎng)站建設(shè)價格廣州網(wǎng)站制作服務(wù)
  • 貴州省建設(shè)廳二建報名網(wǎng)站全球疫情最新數(shù)據(jù)
  • 做證書的網(wǎng)站廈門seo推廣外包
  • 網(wǎng)站開發(fā)功能需求表百度關(guān)鍵詞優(yōu)化軟件