千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  應(yīng)聘面試  >  Python面試題  > 數(shù)據(jù)庫(kù)負(fù)載均衡

數(shù)據(jù)庫(kù)負(fù)載均衡

來(lái)源:千鋒教育
發(fā)布人:wjy
時(shí)間: 2022-08-22 14:36:04 1661150164

負(fù)載均衡集群是由一組相互獨(dú)立的計(jì)算機(jī)系統(tǒng)構(gòu)成,通過(guò)常規(guī)網(wǎng)絡(luò)或?qū)S镁W(wǎng)絡(luò)進(jìn)行連接,由路由器銜接在一起,各節(jié)點(diǎn)相互協(xié)作、共同負(fù)載、均衡壓力,對(duì)客戶端來(lái)說(shuō),整個(gè)群集可以視為一臺(tái)具有超高性能的獨(dú)立服務(wù)器。

數(shù)據(jù)庫(kù)負(fù)載均衡

1、實(shí)現(xiàn)原理實(shí)現(xiàn)數(shù)據(jù)庫(kù)的負(fù)載均衡技術(shù),首先要有一個(gè)可以控制連接數(shù)據(jù)庫(kù)的控制端。在這里,它截?cái)嗔藬?shù)據(jù)庫(kù)和程序的直接連接,由所有的程序來(lái)訪問(wèn)這個(gè)中間層,然后再由中間層來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。

這樣, 我們就可以具體控制訪問(wèn)某個(gè)數(shù)據(jù)庫(kù)了,然后還可以根據(jù)數(shù)據(jù)庫(kù)的當(dāng)前負(fù)載采取有效的均衡策略,來(lái)調(diào)整每次連接到哪個(gè)數(shù)據(jù)庫(kù)。

2、實(shí)現(xiàn)多據(jù)庫(kù)數(shù)據(jù)同步對(duì)于負(fù)載均衡,最重要的就是所有服務(wù)器的數(shù)據(jù)都是實(shí)時(shí)同步的。這是一個(gè)集群所必需的,因?yàn)?,如果?shù)不據(jù)實(shí) 時(shí)、不同步,那么用戶從一臺(tái)服務(wù)器讀出的數(shù)據(jù),就有別于從另一臺(tái)服務(wù)器讀出的數(shù)據(jù),這是不能允許的。所以必須實(shí)現(xiàn)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。

這樣,在查詢的時(shí)候就可以有多個(gè)資源,實(shí)現(xiàn)均衡。

比較常用的方法是Moebiusfor SQL Server集群,Moebius for SQL Server集群采用將核心程序駐留在每個(gè)機(jī)器的數(shù)據(jù)庫(kù)中的辦法,這個(gè)核心程序稱為Moebius for SQL Server中間件,主要作用是監(jiān)測(cè)數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)的變化并將變化的數(shù)據(jù)同步到其他數(shù)據(jù)庫(kù)中。數(shù)據(jù)同步完成后客戶端才會(huì)得到響應(yīng),同步過(guò)程是并發(fā)完成的,所以同步到多個(gè)數(shù)據(jù)庫(kù)和同步到一個(gè)數(shù)據(jù)庫(kù)的時(shí)間基本相等;

另外同步的過(guò)程是在事務(wù)的環(huán)境下完成的,保證了多份數(shù)據(jù)在任何時(shí)刻數(shù)據(jù)的一致性。正因?yàn)?Moebius中間件宿主在數(shù)據(jù)庫(kù)中的創(chuàng)新,讓中間件不但能知道數(shù)據(jù)的變化,而且知道引起數(shù)據(jù)變化的SQL語(yǔ)句, 根據(jù)SQL語(yǔ)句的類型智能的采取不同的數(shù)據(jù)同步的策略以保證數(shù)據(jù)同步成本的最小化。數(shù)據(jù)條數(shù)很少,數(shù)據(jù)內(nèi)容也不大,則直接同步數(shù)據(jù)。數(shù)據(jù)條數(shù)很少,但是里面包含大數(shù)據(jù)類型, 比如文本,二進(jìn)制數(shù)據(jù)等,則先對(duì)數(shù)據(jù)進(jìn)行壓縮然后再同步,從而減少網(wǎng)絡(luò)帶寬的占用和傳輸所用的時(shí)間。

數(shù)據(jù)條數(shù)很多,此時(shí)中間件會(huì)拿到造成數(shù)據(jù)變化的SQL語(yǔ)句, 然后對(duì) SQL語(yǔ)句進(jìn)行解析,分析其執(zhí)行計(jì)劃和執(zhí)行成本,并選擇是同步數(shù)據(jù)還是同步SQL語(yǔ)句到其他的數(shù)據(jù)庫(kù)中。

此種情況應(yīng)用在對(duì)表結(jié)構(gòu)進(jìn)行調(diào)整或者批量更改數(shù) 據(jù)的時(shí)候非常有用。 

 3、優(yōu)缺點(diǎn)優(yōu)點(diǎn): 

1) 擴(kuò)展性強(qiáng):當(dāng)系統(tǒng)要更高數(shù)據(jù)庫(kù)處理速度時(shí),只要簡(jiǎn)單地增加數(shù)據(jù)庫(kù)服務(wù)器就可以得到擴(kuò)展。

2) 可維護(hù)性:當(dāng)某節(jié)點(diǎn)發(fā)生故障時(shí),系統(tǒng)會(huì)自動(dòng)檢測(cè)故障并轉(zhuǎn)移故障節(jié)點(diǎn)的應(yīng)用,保證數(shù)據(jù)庫(kù)的持續(xù)工作。

3) 安全性:因?yàn)閿?shù)據(jù)會(huì)同步的多臺(tái)服務(wù)器上,可以實(shí)現(xiàn)數(shù)據(jù)集的冗余,通過(guò)多份數(shù)據(jù)來(lái)保證安全性。另外它成功地將數(shù)據(jù)庫(kù)放到了內(nèi)網(wǎng)之中,更好地保護(hù)了數(shù)據(jù)庫(kù)的安全性。

4) 易用性:對(duì)應(yīng)用來(lái)說(shuō)完全透明,集群暴露出來(lái)的就是一個(gè)IP缺點(diǎn):

a) 不能夠按照Web 服務(wù)器的處理能力分配負(fù)載。

b) 負(fù)載均衡器(控制端)故障,會(huì)導(dǎo)致整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)癱瘓。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
【Python面試題】談?wù)勀銓?duì)“猴子補(bǔ)丁”(monkey patching)的理解

“猴子補(bǔ)丁”是動(dòng)態(tài)類型語(yǔ)言的一個(gè)特性,代碼運(yùn)行時(shí)在不修改源代碼的前提下改變代碼中的方法、屬性、函數(shù)等以達(dá)到熱補(bǔ)丁(hot patch)的效果。詳情>>

2022-08-23 10:29:17
【Python面試題】使用Python代碼實(shí)現(xiàn)遍歷一個(gè)文件夾的操作

Python標(biāo)準(zhǔn)庫(kù)os模塊的walk函數(shù)提供了遍歷一個(gè)文件夾的功能,它返回一個(gè)生成器。import os g = os.walk('/Users/Hao/Downloads/') for path, dir...詳情>>

2022-08-23 10:29:09
【Python面試題】如何理解python中的封裝,繼承,多態(tài)的

封裝:封裝就是把對(duì)象的屬性和行為結(jié)合成一個(gè)獨(dú)立的整體,把內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái),不能被外界所看見(jiàn),調(diào)用的人只能執(zhí)行,而看不到實(shí)現(xiàn)的細(xì)節(jié)...詳情>>

2022-08-23 10:29:06
【Python面試題】運(yùn)行下面的代碼是否會(huì)報(bào)錯(cuò)

擴(kuò)展:如果不希望代碼運(yùn)行時(shí)動(dòng)態(tài)的給對(duì)象添加新屬性,可以在定義類時(shí)使用__slots__魔法。例如,我們可以在上面的A中添加一行__slots__ = ('__va...詳情>>

2022-08-23 10:29:03
【Python面試題】閱讀下面的代碼說(shuō)出運(yùn)行結(jié)果。

在沒(méi)有多重繼承的情況下,向?qū)ο蟀l(fā)出一個(gè)消息,如果對(duì)象沒(méi)有對(duì)應(yīng)的方法,那么向上(父類)搜索的順序是非常清晰的。如果向上追溯到object類(所...詳情>>

2022-08-23 10:29:00
快速通道