成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

新榜樣老司機帶你認識MySQL分布式存儲

存儲 存儲軟件 分布式
分布式數據庫是指利用高速網絡將物理上分散的多個數據存儲單元連接起來組成一個邏輯上統一的數據庫。分布式數據庫的基本思想是將原來集中式數據庫中的數據分散存儲到多個通過網絡連接的數據存儲節點上,以獲得更大的存儲容量和更高的并發訪問量。

1、分布式應用的概念和優勢

分布式數據庫是指利用高速網絡將物理上分散的多個數據存儲單元連接起來組成一個邏輯上統一的數據庫。分布式數據庫的基本思想是將原來集中式數據庫中的數據分散存儲到多個通過網絡連接的數據存儲節點上,以獲得更大的存儲容量和更高的并發訪問量。近年來,隨著數據量的增長,分布式數據庫技術也得到了快速的發展,傳統的關系型數據庫開始從集中式模型向分布式存儲,從集中式計算走向分布式計算。

分布式數據庫系統的主要目的是容災、異地數據備份,并且通過就近訪問原則,用戶可以就近訪問數據庫節點,這樣就實現了異地的負載均衡。同時,通過數據庫之間的數據傳輸同步,可以分布式保持數據的一致性,這個過程完成了數據備份,異地存儲數據在單點故障的時候不影響服務的訪問,只需要將訪問流量切換異地鏡像就行。

分布式數據庫應用的優勢如下:

(1)適合分布式數據管理,能夠有效提高系統性能。

(2)系統經濟性和靈活性好。

(3)系統的可靠性和可用性強。

 

2、mysql分布式應用的主要技術

(1)mysql數據切割

數據切割(sharding)是指通過某種特定的條件,將存放在同一數據庫中的數據分散存放到多個數據庫(主機)上面,以達到分散單臺設備負載的效果。數據切分還可以提高系統的總體可用性,因為單臺crash之后,只有總體數據的某部分不同,而不是所有數據。

根據其切分規則的類型,可以分為兩種切分模式。一種是按照不同的表(或者schema)來切分到不同的數據庫(主機)之上,這種切分成為數據的垂直(縱向切分);另一種則是根據表中數據的邏輯關系,將同一個表中的數據按照某種條件拆分到多臺數據庫(主機)上面,這種切分稱為數據的水平(橫向)切分。垂直切分的***特點就是規則簡單,實施也更為方便,尤其適合各個業務之間耦合度低,相互影響小、業務邏輯非常清晰的系統。在這種系統中,可以很容易做到將不同業務模塊所使用的表拆分到不同的數據庫中。根據不同的表進行拆分,對應用程序的影響也更小,拆分規則也會比較簡單清晰。水平切分比垂直切分更復雜一點。因為要將同一個表中的不同數據拆分到不同的數據庫中,對于應用程序來說,拆分規則本身比較復雜,后期的數據維護也更加復雜一些。

(2)為什么要切分數據?

1)像Oracle這樣成熟穩定的DB可以支撐海量數據的存儲和查詢,但是價格不是所有人都承受得起。

2)負載高點時,Master-Slaver模式中存在瓶頸。現有技術中,在負載高點時使用相關的Replication機制來實現相關的讀寫的吞吐性能。這種機制存在兩個瓶頸:一是有效性依賴于讀操作的比例,這里Master往往會成為瓶頸所在,寫操作時需要一個順序隊列來執行,過載時Master會承受不住,Slaver的數據同步延遲也會很大,同時還會消耗CPU的計算能力,為write操作在Master上執行以后還是需要在每臺slave機器上都跑一次。而Sharding可以輕松的將計算,存儲,I/O并行分發到多臺機器上,這樣可以充分利用多臺機器各種處理能力,同時可以避免單點失敗,提供系統的可用性,進行很好的錯誤隔離。

3)用免費的MySQL和廉價的Server甚至是PC做集群,達到小型機+大型商業DB的效果,減少大量的資金投入,降低運營成本,何樂而不為呢?

Mysql5.1以上的版本都支持數據表分區功能。數據庫中的數據在經過垂直或水平切分被存放在不同的數據庫主機中之后,應用系統面臨的***問題就是如何讓這些數據源得到較好的整合,有以下兩種解決思路。

1)在每個應用程序模塊中配置管理自己需要的一個(或者多個)數據源,直接訪問各個數據庫,在模塊內完成數據的整合。

2)通過中間代理層來統一管理所有的數據源,后端數據庫集群對前端應用程序透明。

第二種方案,雖然短期內需要付出的成本可能會大一些,但是對整個系統的擴展性來說,是非常有幫助的。針對第二種方案,可以思路如下:

1)利用mysql proxy實現數據切分及整合。

Mysql proxy是在客戶端請求與mysql服務器之間建立一個連接池,所有客戶端請求都發送到mysql proxy,由mysql proxy進行相應的分析,判斷是讀操作還是寫操作,然后發送到相應的mysql服務器上。對于多節點slave集群,也可以做到負載均衡的效果。

2)利用amoeba實現數據切分及整合。

Amoeba是一個基于java開發的、專注于解決分布式數據庫數據源整合proxy程序的開源框架,amoeba已經具有query路由,query過濾、讀寫分離、負載均衡以及HA機制等相關內容。Amoeba主要解決以下幾個問題:

①數據切分后復雜數據源整合

②提供數據切分規則并降低數據切分規則給數據庫帶來的影響

③降低數據庫與客戶端的連接數

④讀寫分離路由

3)利用HiveDB實現數據切分及整合。

3、mysql讀寫分離

讀寫分離是利用數據庫的復制技術,將讀和寫分布在不同的處理節點上,從而達到提高可用性和擴展性的目的。主數據庫提供寫操作,從數據庫提供讀操作,在很多系統中,更多地是讀操作。當主數據庫進行寫操作時,數據要同步到從數據庫,這樣才能有效保證數據庫完整性。Mysql也有自己的同步數據技術。Mysql通過二進制日志來復制數據,主數據庫同步到從數據庫后,從數據庫一般由多臺數據庫組成,這樣才能達到減輕壓力的目的。讀操作應根據服務器的壓力分配到不同的服務器,而不是簡單的隨機分配。Mysql提供了mysql proxy實現讀寫分離操作。

目前較為常見的mysql讀寫分離分為以下兩種。

①基于程序代碼內部實現

在代碼中根據select、insert進行路由分類,這類方法也是目前生產環境中應用最廣泛的。

②基于中間代理層實現

代理位于客戶端和服務器之間,代理服務器收到客戶端請求后通過判斷轉發到后端數據庫。下圖是ebay讀寫分離的結構圖,通過share plex近乎實時的復制數據到其他數據節點,再通過特定的模塊檢查數據庫狀態,并進行負載均衡、讀寫分離,極大地提高了系統可用性。

4、mysql集群

Mysql cluster技術在分布式系統中為mysql數據提供了冗余特性,增強了安全性,使得單個mysql服務器故障不會對系統產生巨大的負面效應,系統的穩定性得到保障。

Mysql cluster采用shared-nothing(無共享)架構。Mysql custer主要利用了NDB存儲引擎來實現,NDB存儲引擎是一個內存式存儲引擎,要求數據必須全部加載到內存之中。數據被自動分布在集群中的不同存儲節點上,每個存儲節點只保存完整數據的一個分片(fragment)。同時,用戶可以設置同一份數據保存在多個不同的存儲節點上,以保證單點故障不會造成數據丟失。

Mysql cluster需要一組計算機,每臺計算機的角色可能是不一樣的。Mysql cluster按照節點類型可以分為3類:管理節點(對其他節點進行管理)、數據節點(存放cluster中的數據,可以有多個)和mysql節點(存放表結構,可以有多個)。Cluster中的某計算機可以是某一種節點,也可以是2種或3種節點的集合。這3種節點只是在邏輯上劃分,所以他們不一定和物理計算機是一一對應的關系。多個節點之間可以分布在不同的地理位置,因此也是一個實現分布式數據庫的方案。

Mysql集群的出現很好的實現了數據庫的負載均衡,減少了數據中心節點的壓力和大數據處理,當數據庫中心節點出現故障時,集群會采用一定的策略切換到其他備份節點上,有效的屏蔽了故障問題,單節點的失效不會影響整個數據庫對外提供服務。而且通過采用數據庫集群架構,主從數據庫之間時刻都在進行數據的同步冗余,數據庫是多點的、分布式的,良好的完成了數據庫數據的備份,避免了數據損失。

責任編輯:武曉燕 來源: 陜西新榜樣
相關推薦

2018-10-29 12:42:23

Ceph分布式存儲

2018-01-02 20:00:28

數據庫MySQL分布式存儲

2021-01-07 10:35:56

分布式存儲新基建數據存儲

2017-10-27 08:40:44

分布式存儲剪枝系統

2024-08-12 16:20:27

2015-05-12 13:03:54

開源分布式存儲HDFS

2021-02-19 19:21:47

分布式存儲存儲新基建

2020-03-09 10:21:12

Java集合類 Guava

2016-11-28 16:09:37

2019-09-19 08:17:02

數據分析AB

2018-02-22 08:42:04

分布式存儲安全

2017-01-10 16:18:26

分布式存儲建設

2017-10-17 08:33:31

存儲系統分布式

2018-10-09 10:45:40

2017-04-14 09:48:25

分布式存儲系統

2017-03-17 15:10:52

微信消息撤回功能

2018-03-14 10:44:34

數據庫MySQLMGR

2017-07-17 17:13:58

老司機

2017-12-18 10:47:04

分布式存儲數據

2018-11-15 12:35:25

Ceph分布式存儲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 射久久 | 亚洲天堂av网| 久久极品 | 亚洲国产精品一区二区久久 | 91亚洲国产 | 精品欧美一区免费观看α√ | 欧美国产日韩精品 | 精产国产伦理一二三区 | 免费一级黄色电影 | 国产精品不卡视频 | 亚洲国产一区二区三区在线观看 | 成人国产在线观看 | 一级黄色影片在线观看 | 91观看 | 亚洲一区在线观看视频 | 欧美精品区 | 国产精品久久毛片av大全日韩 | 中文字幕欧美日韩 | 成人av一区二区在线观看 | 亚洲不卡在线观看 | 91成人午夜性a一级毛片 | 日日射夜夜骑 | 日韩欧美在线观看视频 | 国产日韩精品在线 | 国产婷婷色综合av蜜臀av | 欧美a级成人淫片免费看 | 羞羞视频网站免费看 | 精品久久香蕉国产线看观看亚洲 | 欧美一级欧美一级在线播放 | 国产一区欧美 | 在线日韩精品视频 | 亚洲成人三级 | 中文字幕精品一区二区三区精品 | 黄色片视频| 日韩免费福利视频 | 美女久久久久久久 | 成人免费在线播放视频 | 天天操天天射综合 | 久久久久久久久久久久亚洲 | 成人a免费 | 亚洲 自拍 另类 欧美 丝袜 |