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

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

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

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

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

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

分享到

zhaohang

相關(guān)推薦