通過中介軟體的形式為前台提供一台虛擬的資料庫伺服器,而中介軟體在後台實際管理著多個資料庫節點,允許將單張表分布到不同的資料庫節點上進行效能均衡。
總體架構:
master管理伺服器,提供資源分配,負載統計等總多功能;
dbn(database node)資料庫節點伺服器;
dbi(database inte***ce)資料庫訪問介面,部署在客戶機上,以jar包的形式提供給應用程式使用,提供查詢處理功能,隱藏了資料訪問的複雜性;
資料的分割槽和負載均衡:
資料的水平分割槽方式:hash分割槽;
系統採用hash表和對映表兩級對映的方式實現:首先根據乙個固定的hash演算法和特定的字段值將表中的每條記錄對映到乙個hash桶上,然後使用乙個動態可調的map將多個hash桶對映到乙個儲存節點上,這個計算hash值的字段稱為均衡字段。
兩級對映方案,消除了直接使用hash表無法調整和直接使用map對映占用空間過大的缺點,擴充後端節點時,僅需要修改map對映就能完成遷移;同類資料之間宜採用相同的分割槽或者均衡策略(均衡欄位和hash演算法),在進行負載均衡調整時以桶為單位進行統一處理。
資料庫表均衡欄位的選擇:
1. 對於表中字段a,當且僅當訪問這個表時經常指定a上的等值條件時,欄位a才是乙個好的均衡字段候選人;
2. 當依據規則一產生多個候選均衡欄位時,傾向於用distinct值比較多的那個;
如student(name,dept專業,age...)訪問這張表總是指定name和dept的等值條件,則選擇name;
3. 當多個表需要使用相同的均衡策略時,表的均衡字段選取要統一考慮;
4. 表之間存在外來鍵的引用關係時,最好使用同乙個均衡策略;
分布式查詢:
分布式資料庫中介軟體需要提供透明的資料訪問介面,在中介軟體中採用了分布式查詢處理技術實現了這種透明的sql語句執行功能:
系統解析輸入的sql語句,根據查詢條件訪問map儲存對映表,得到需要訪問的後台儲存節點,並生成查詢計畫。
查詢計畫包括對各個儲存節點的查詢以及對多個節點返回結果的進一步處理。
效能優化:
1.盡可能在均衡欄位上指定等值條件:可以使操作只傳送到乙個後台資料庫節點。若不指定,操作需要傳送到每個後台節點,可能導致效能大幅度下降。
2.建索引:分布式資料庫的高效能依賴於底層資料庫的高效能
3.整合memcached快取:ddb對memcached提供支援,應用通過jdbc介面訪問資料,不關心是從底層節點還是memcached快取中得到的,也不用處理資料更行後快取與資料庫節點之間的一致性。
分布式系統是什麼?
分布式系統指的是多台機器有關聯地組成乙個整體,共同完成某一類任務。分布式系統不專門用於某一類任務,單台機器可以完成的任務,均可以通過分布式系統完成,例如資料儲存 web應用 大規模計算等等。為了使多台機器組成乙個整體,需要乙個合適的系統 協議使得多台機器在任務分配,資源劃分等方面不會發生衝突。同時,...
什麼是分布式
1,什麼是分布式?任務分解 節點通訊 1 分布式和集群的關係?2 什麼是大型 訪問量 tps qps 資料量 儲存資料量 3 具體場景 第一版應用 第二版 單擊負載越來越高,資料庫伺服器和應用伺服器分離 第三版 應用伺服器做集群 cookie 儲存的是jsessionid concurrentmap...
什麼是分布式
1,什麼是分布式?任務分解 節點通訊 1 分布式和集群的關係?2 什麼是大型 訪問量 tps qps 資料量 儲存資料量 3 具體場景 第一版應用 第二版 單擊負載越來越高,資料庫伺服器和應用伺服器分離 第三版 應用伺服器做集群 cookie 儲存的是jsessionid concurrentmap...