亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mycat學習實戰-Mycat初識

發布時間:2020-04-03 17:11:24 來源:網絡 閱讀:1631 作者:ygqygq2 欄目:MySQL數據庫

Mycat學習實戰-Mycat初識


學習 mycat mysql



  • Mycat學習實戰-Mycat初識

  • 1. Mycat是什么

  • 2. Mycat與其他中間件的區別

    • 2.1 Mango

    • 2.2 Cobar

    • 2.3 Heisenberg

    • 2.4 Atlas

    • 2.5 Ameoba

  • 3. Mycat能解決的問題

  • 4. Mycat核心概念

    • 4.2.1 分片表

    • 4.2.2 非分片表

    • 4.2.3 ER表

    • 4.2.4 全局表

    • 4.1 邏輯庫(schema)

    • 4.2 邏輯表(table)

    • 4.3 分片節點(dataNode)

    • 4.4 節點主機(dataHost)

  • 5. Mycat文件夾以及文件介紹


1. Mycat是什么

Mycat是一個徹底開源的面向企業應用開發的大數據庫集群,支持事務、ACID,是可以替代MySQL的加強版數據庫。Mycat被視為MySQL集群的企業級數據庫,用來替代昂貴的Oracle集群,它是融合了內存緩存技術、NoSQL技術、HDFS大數據的新型SQL Server,是結合了傳統數據庫和新型分布式數據倉庫的新一代的企業級數據庫產品,也是一個優秀的數據庫中間件。

Mycat學習實戰-Mycat初識

2. Mycat與其他中間件的區別

目前的數據庫中間件有很多。

2.1 Mango

Mango的中文名是“芒果”,它是一個輕量級的極速數據層訪問框架,目前已有十多個大型線上項目在使用它。據稱,某一支付系統利用Mango承載了每秒12萬的支付下單請求,其超高的性能及超快的響應速度幾乎相當于直接使用JDBC。它采用接口與注解的形式定義DAO,完美地結合了db與cache操作;支持動態SQL,可以構造任意復雜的SQL語句;支持多數據源、分表、分庫、事務;內嵌“函數式調用”功能,能將任意復雜的對象映射到數據庫的表中。但是從整體上看Mango是一個Java Dao Framework,是一個jar包,它的運行依賴于應用系統的項目代碼和服務器,采用了JDBC Shard思想,與TDDL是同款產品。

2.2 Cobar

Cobar是阿里巴巴研發的關系型數據的分布式處理系統(Amoeba的升級版,該產品成功替代了原先基于Oracle的數據存儲方案,目前已經接管了3000多個MySQL數據庫的scheme,平均每天處理近50億次的SQL執行請求。

2.3 Heisenberg

Heisenberg源于Cobar,結合了Cobar和TDDL的優勢,讓其分片策略變為分庫分表策略,節約了大量的連接。優點是分庫分表與應用脫離,分庫分表如同使用單庫表一樣,減少了db連接數的壓力,采用熱重啟配置,可水平擴容,并遵循 MySQL原生協議,采用讀寫分離,無語言限制。MySQL Client、C、Java等都可以使用Heisenberg服務器通過管理命令查看和調整連接數、線程池、節點等。Heisenberg采用velocity的分庫分表腳本進行自定義分庫分表,相當靈活。

2.4 Atlas

Atlas是由奇虎360的Web平臺部基礎架構團隊開發維護的一個基于MySQL協議的數據庫中間層項目。它在MySQL-proxy 0.8.2版本的基礎上進行了優化,增加了一些新的功能和特性。奇虎360內部使用Atlas運行的MySQL業務,每天承載的讀寫請求數達幾十億條。Atlas位于應用程序與MySQL之間,實現了MySQL的客戶端與服務端協議,作為服務端與應用程序通信,同時作為客戶端與MySQL通信。它對應用程序屏蔽了db的細節,同時為了降低MySQL的負擔,維護了連接池。

2.5 Ameoba

Ameoba是一個以MySQL為底層數據存儲,并對應用提供MySQL協議接口的Proxy。它集中響應應用的請求,依據用戶事先設置的規則,將SQL請求發送到特定的數據庫上執行,基于此可以實現負載均衡、讀寫分離、高可用性等需求。與MySQL官方的MySQL Proxy相比,Ameoba的作者強調的是Amoeba配置的便捷性(基于XML的配置文件,用SQLJEP語法書寫規則,比基于Lua腳本的MySQL Proxy簡單)。

Mycat與以上中間件的對比如下表所示。

對比項目MycatMangoCobaHeisenbergAtlasAmoeba
數據切片支持支持支持支持支持支持
讀寫分離支持支持支持支持支持支持
宕機自動切換支持不支持支持不支持半支持,影響寫不支持
MySQL協議前后端支持JDBC前端支持前后端支持前后端支持JDBC
支持的數據庫MySQL、Oracle、MongoDB、PostgreSQLMySQLMySQLMySQLMySQLMySQL、MongoDB
社區活躍度活躍停滯中等停滯
文檔資料極豐富較齊全較齊全缺少中等缺少
是否開源開源開源開源開源開源開源
是否支持事務弱XA支持單庫強一致、分布式弱事務單庫強一致、多庫弱事務單庫強一致、分布式弱事務不支持

3. Mycat能解決的問題

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識










4. Mycat核心概念

4.1 邏輯庫(schema)

業務開發人員通常在實際應用中并不需要知道中間件的存在,只需要關注數據庫,所以數據庫中間件可以被當作一個或多個數據庫集群構成的邏輯庫。 
在云計算時代,數據庫中間件可以以多租戶的形式為一個或多個應用提供服務,每個應用訪問的可能是一個獨立或者共享的物理庫。

Mycat學習實戰-Mycat初識

4.2 邏輯表(table)

Mycat學習實戰-Mycat初識

4.2.1 分片表

分片表是將指數據量很大的表切分到多個數據庫實例中,所有分片組合起來構成了一張完整的表。

Mycat學習實戰-Mycat初識

4.2.2 非分片表

并非所有的表在數據量很大時都需要進行分片,某些表可以不用分片。非分片表是相對于分片表而言的不需要進行數據切片的表。

4.2.3 ER表

關系型數據庫是基于實體關系模型(Entity Relationship Model)的,Mycat中的ER表便來源于此。基于此思想,Mycat提出了基于E-R關系的數據分片策略,子表的記錄與其所關系的父表的記錄存放在同一個數據分片上,即子表依賴于父表,通過表分組(Table Group)保證數據關聯查詢不會跨庫操作。 
表分組(Table Group)是解決跨分片數據關聯查詢的一種很好的思路,也是數據切分的一條重要規則。

Mycat學習實戰-Mycat初識

4.2.4 全局表

在一個真實的業務場景中往往存在大量類似的字典表,這些字典表中的數據變動不頻繁,而且數據規模不大,很少有超過數十萬條的記錄。 
當業務表因為規模進行分片后,業務表這些附屬的字典表之間的關聯查詢就成了比較棘手的問題,所以在Mycat中通過數據冗余來解決這類表的關聯查詢,即所有分片都復制了一份數據,我們把這些冗余數據的表定義為全局表。 
數據冗余是解決跨分片數據關聯查詢的一種很好的思路,也是數據切分規劃的另一條重要規則。

Mycat學習實戰-Mycat初識

4.3 分片節點(dataNode)

將數據切分后,一個多大個被分到不同的分片數據 庫上,每個表分片所在的數據庫就是分片節點。

4.4 節點主機(dataHost)

將數據切分后,每個分片節點不一定會獨占一臺機器,同一臺機器上可以有多個分片數據庫,這樣一個或多個分片節點所在的機器就是節點主機。為了規避單節點主機并發數量的限制,盡量將讀寫壓力高的分片節點均勻地放在不同的節點主機上。

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

5. Mycat文件夾以及文件介紹

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

Mycat學習實戰-Mycat初識

參考資料: 
[1] http://mycat.io/ 
[2] 《分布式數據庫架構及企業實踐——基于Mycat中間件》 
[3] 龍哥官方課程課件


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伊川县| 札达县| 柞水县| 巫溪县| 马龙县| 武城县| 平安县| 许昌市| 巩留县| 宜都市| 洪雅县| 广河县| 浦北县| 福建省| 高阳县| 永胜县| 井冈山市| 都昌县| 馆陶县| 都匀市| 宁化县| 潞西市| 武平县| 东源县| 东阳市| 桂林市| 蒲城县| 准格尔旗| 三门峡市| 隆昌县| 陆川县| 小金县| 湘阴县| 西峡县| 许昌市| 黑龙江省| 利津县| 鞍山市| 多伦县| 镇坪县| 兴山县|