使用MyCAT實現(xiàn)分庫分表教程-創(chuàng)新互聯(lián)

下面講講關(guān)于使用MyCAT實現(xiàn)分庫分表教程,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完使用MyCAT實現(xiàn)分庫分表教程這篇文章你一定會有所受益。

目前成都創(chuàng)新互聯(lián)公司已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計、鄯善網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

分庫分表介紹

隨著微服務(wù)這種架構(gòu)的興起,我們應(yīng)用從一個完整的大的應(yīng)用,切分為很多可以獨立提供服務(wù)的小應(yīng)用。每個應(yīng)用都有獨立的數(shù)據(jù)庫。

數(shù)據(jù)的切分分為兩種:

垂直切分:按照業(yè)務(wù)模塊進(jìn)行切分,將不同模塊的表切分到不同的數(shù)據(jù)庫中。

使用MyCAT實現(xiàn)分庫分表教程

 水平切分:將一張大表按照一定的切分規(guī)則,按照行切分到不同的表或者不同的庫中。

使用MyCAT實現(xiàn)分庫分表教程

 MyCAT介紹

官方網(wǎng)站:http://www.mycat.org.cn/

什么是MyCAT?

簡單的說,MyCAT就是:

  • 一個徹底開源的,面向企業(yè)應(yīng)用開發(fā)的“大數(shù)據(jù)庫集群”
  • 支持事務(wù)、ACID、可以替代Mysql的加強(qiáng)版數(shù)據(jù)庫
  • 一個可以視為“Mysql”集群的企業(yè)級數(shù)據(jù)庫,用來替代昂貴的Oracle集群
  • 一個融合內(nèi)存緩存技術(shù)、Nosql技術(shù)、HDFS大數(shù)據(jù)的新型SQL Server
  • 結(jié)合傳統(tǒng)數(shù)據(jù)庫和新型分布式數(shù)據(jù)倉庫的新一代企業(yè)級數(shù)據(jù)庫產(chǎn)品
  • 一個新穎的數(shù)據(jù)庫中間件產(chǎn)品

MyCAT的目標(biāo)是:低成本的將現(xiàn)有的單機(jī)數(shù)據(jù)庫和應(yīng)用平滑遷移到“云”端,解決數(shù)據(jù)存儲和業(yè)務(wù)規(guī)模迅速增長情況下的數(shù)據(jù)瓶頸問題。

MyCAT的關(guān)鍵特性

  1. 支持 SQL 92標(biāo)準(zhǔn)
  2. 支持Mysql集群,可以作為Proxy使用
  3. 支持JDBC連接ORACLE、DB2、SQL Server,將其模擬為MySQL Server使用
  4. 支持galera for mysql集群,percona-cluster或者mariadb cluster,提供高可用性數(shù)據(jù)分片集群
  5. 自動故障切換,高可用性
  6. 支持讀寫分離,支持Mysql雙主多從,以及一主多從的模式
  7. 支持全局表,數(shù)據(jù)自動分片到多個節(jié)點,用于高效表關(guān)聯(lián)查詢
  8. 支持獨有的基于E-R 關(guān)系的分片策略,實現(xiàn)了高效的表關(guān)聯(lián)查詢
  9. 多平臺支持,部署和實施簡單

MyCAT架構(gòu)

使用MyCAT實現(xiàn)分庫分表教程

使用MyCAT實現(xiàn)分庫分表教程

MyCAT核心概念

  1. Schema:由它指定邏輯數(shù)據(jù)庫
  2. Table:邏輯表
  3. DataNode:真正存儲節(jié)點
  4. DataHost:真正的數(shù)據(jù)庫主機(jī)

Mycat存在的問題

跨庫join問題

  • 通過業(yè)務(wù)分析,將不同庫的join查詢拆分成多個select
  • 建立全局表(每個庫都有一個相同的表)
  • 冗余字段(不符合數(shù)據(jù)庫三范式)
  • E-R分片(將有關(guān)系的記錄都存儲到一個庫中)
  • 最多支持跨兩張表跨庫的join

分布式事務(wù)(弱事務(wù))

  • 強(qiáng)一致性事務(wù)(同步)
  • 最終一致性事務(wù)(異步思想)

分布式主鍵

  • redis incr命令
  • 數(shù)據(jù)庫(生成主鍵)
  • UUID
  • snowflake算法

1.1     分片策略

MyCAT支持水平分片與垂直分片:

  • 水平分片:一個表格的數(shù)據(jù)分割到多個節(jié)點上,按照行分隔。
  • 垂直分片:一個數(shù)據(jù)庫中多個表格A,B,C,A存儲到節(jié)點1上,B存儲到節(jié)點2上,C存儲到節(jié)點3上。

使用MyCAT實現(xiàn)分庫分表教程

MyCAT通過定義表的分片規(guī)則來實現(xiàn)分片,每個表格可以捆綁一個分片規(guī)則,每個分片規(guī)則指定一個分片字段并綁定一個函數(shù),來實現(xiàn)動態(tài)分片算法。

  1. Schema:邏輯庫,與MySQL中的Database(數(shù)據(jù)庫)對應(yīng),一個邏輯庫中定義了所包括的Table。
  2. Table:表,即物理數(shù)據(jù)庫中存儲的某一張表,與傳統(tǒng)數(shù)據(jù)庫不同,這里的表格需要聲明其所存儲的邏輯數(shù)據(jù)節(jié)點DataNode。在此可以指定表的分片規(guī)則。
  3. DataNode:MyCAT的邏輯數(shù)據(jù)節(jié)點,是存放table的具體物理節(jié)點,也稱之為分片節(jié)點,通過DataSource來關(guān)聯(lián)到后端某個具體數(shù)據(jù)庫上
  4. DataSource:定義某個物理庫的訪問地址,用于捆綁到Datanode上

Mycat讀寫分離

MyCat的讀寫分離是建立在MySQL主從復(fù)制基礎(chǔ)之上實現(xiàn)的。

數(shù)據(jù)庫讀寫分離對于大型系統(tǒng)或者訪問量很高的互聯(lián)網(wǎng)應(yīng)用來說,是必不可少的一個重要功能。對于MySQL來說,標(biāo)準(zhǔn)的讀寫分離是主從模式,一個寫節(jié)點Master后面跟著多個讀節(jié)點,讀節(jié)點的數(shù)量取決于系統(tǒng)的壓力,通常是1-3個讀節(jié)點的配置

使用MyCAT實現(xiàn)分庫分表教程

Mycat讀寫分離和自動切換機(jī)制,需要mysql的主從復(fù)制機(jī)制配合。

對于以上使用MyCAT實現(xiàn)分庫分表教程相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站名稱:使用MyCAT實現(xiàn)分庫分表教程-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article20/ddogjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站改版、建站公司、網(wǎng)站排名、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)