圖6-2 SQL Azure 創(chuàng)建的三個(gè)數(shù)據(jù)庫(kù)副本

圖6-3 SQL Azure 在主數(shù)據(jù)庫(kù)故障時(shí)創(chuàng)建新的副本

SQL Azure 在服務(wù)器端的架構(gòu)如圖6-4 所示。首先從Internet 上發(fā)送過(guò)來(lái)的數(shù)據(jù)庫(kù)請(qǐng)求會(huì)通過(guò)一個(gè)基于TDS(Tabular Data Stream)協(xié)議的負(fù)載均衡服務(wù)器處理。這個(gè)負(fù)載均衡使用黏滯性算法保證同一個(gè)鏈接的所有請(qǐng)求會(huì)被路由到同一臺(tái)物理服務(wù)器。同時(shí)由于其基于TDS 協(xié)議,保證了只要客戶端也使用了TDS 協(xié)議,那么這些請(qǐng)求都是可被接受的,比如ADO.NET、ODBC等,從而保證了SQL Azure 對(duì)于開發(fā)人員的使用一致性。

數(shù)據(jù)庫(kù)訪問請(qǐng)求通過(guò)負(fù)載均衡服務(wù)器轉(zhuǎn)發(fā)到Gateway 服務(wù)器上。Gateway 服務(wù)器在這里充當(dāng)一個(gè)代理和轉(zhuǎn)發(fā)的角色。首先它完成對(duì)請(qǐng)求的認(rèn)證和授權(quán)操作,保證只有合法的請(qǐng)求才能進(jìn)入下一級(jí)操作。同時(shí)它還對(duì)請(qǐng)求進(jìn)行防火墻驗(yàn)證,保證請(qǐng)求者的IP 必須是SQL Azure 防火墻中設(shè)置允許訪問的。最后,Gateway 還有一個(gè)內(nèi)部的訪問計(jì)數(shù)器用來(lái)防止DoS(Denial of Service)攻擊。如圖6-4 所示,Gateway 部分由多臺(tái)服務(wù)器組成,在進(jìn)行操作之后,它會(huì)基于連接字符串將TDS請(qǐng)求轉(zhuǎn)發(fā)給對(duì)應(yīng)的SQL Azure 物理服務(wù)器,也就是用戶數(shù)據(jù)庫(kù)真正保存的服務(wù)器中。

而對(duì)于為數(shù)眾多的數(shù)據(jù)庫(kù)服務(wù)器,SQL Azure 提供了底層控制模塊負(fù)責(zé)創(chuàng)建、遷移、配置、故障恢復(fù)和負(fù)載均衡等功能。

圖6-4 SQL Azure 服務(wù)端架構(gòu)

分享到

zhaohang

相關(guān)推薦