1. 程式人生 > >分庫分表框架cobar,cobar-client,tddl,sharding-JDBC

分庫分表框架cobar,cobar-client,tddl,sharding-JDBC

前一段時間研究阿里的分庫框架cobar-client,cobar-client是基於ibatis的SqlMapClientTemplate進行了一層薄薄的封裝,分裝成CobarSqlMapClientTemplate,在使用者在CRUD的時候可以透明的進行操作,算是現在大多公司分庫的一個成熟解決方案,不過現在面臨的一些問題:

   ①不支援分表

   ②基於ibatis而且2013年後基本維護了,沒有進行升級,所以大多公司都基於該思想進行了自己的重寫


來看下噹噹開源的sharding-jdbc,官方網址:點選開啟連結


先允許我盜一波圖:



好了,看了這麼多的介紹,感覺還是很高大上的,注意點有:

①對JDBC API進行了原生態的分裝,這是與cobar-client不一樣的地方,這就是他可以支援多個第三方ORM框架的關鍵

②可支援=BETWEENIN等操作,說明,JDBC返回結果後,sharding進行了合併操作,這裡面肯定會有效能損耗

③支援分表,這也是cobar-client不支援的地方


好了,先簡單的按照官方網址的demo實踐一發:


先在MySQL中建2個庫

分別在這2個庫中執行:

[sql]  view plain  copy
  1. CREATE TABLE IF NOT EXISTS `t_order_0` (  
  2.   `order_id` INT NOT NULL,  
  3.   `user_id`  INT 
    NOT NULL,  
  4.   PRIMARY KEY (`order_id`)  
  5. );  
  6. CREATE TABLE IF NOT EXISTS `t_order_item_0` (  
  7.   `item_id`  INT NOT NULL,  
  8.   `order_id` INT NOT NULL,  
  9.   `user_id`  INT NOT NULL,  
  10.   PRIMARY KEY (`item_id`)  
  11. );  
  12. CREATE TABLE IF NOT EXISTS `t_order_1` (  
  13.   `order_id` INT NOT NULL,  
  14.   `user_id`  INT NOT NULL,  
  15.   PRIMARY KEY (`order_id`)  
  16. );  
  17. CREATE TABLE IF NOT EXISTS `t_order_item_1` (  
  18.   `item_id`  INT NOT NULL,  
  19.   `order_id` INT NOT NULL,  
  20.   `user_id`  INT NOT NULL,  
  21.   PRIMARY KEY (`item_id`)  
  22. );  

新建maven專案


Maven依賴的pom.xml

[html]  view plain  copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.   
  5.     <groupId>org.study</groupId>  
  6.     <artifactId>sharding-jdbc</artifactId>  
  7.     <version>0.0.1-SNAPSHOT</version>  
  8.     <packaging>jar</packaging>  
  9.   
  10.     <name>sharding-jdbc</name>  
  11.     <url>http://maven.apache.org</url>  
  12.   
  13.     <properties>  
  14.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  15.         <spring.version>3.2.5.RELEASE</spring.version>  
  16.         <mybatis.version>3.2.4</mybatis.version>  
  17.     </properties>  
  18.   
  19.     <dependencies>  
  20.         <dependency>  
  21.             <groupId>junit</groupId>  
  22.             <artifactId>junit</artifactId>  
  23.             <version>4.10</version>  
  24.         </dependency>  
  25.         <dependency>  
  26.             <groupId>com.dangdang</groupId>  
  27.             <artifactId>sharding-jdbc-core</artifactId>  
  28.             <version>1.0.0</version>  
  29.         </dependency>  
  30.         <dependency>  
  31.             <groupId>org.springframework</groupId>  
  32.             <artifactId>spring-orm</artifactId>  
  33.             <version>${spring.version}</version>  
  34.         </dependency>  
  35.         <dependency>  
  36.             <groupId>commons-dbcp</groupId>  
  37.             <artifactId

    相關推薦

    分庫框架cobar,cobar-client,tddl,sharding-JDBC

    前一段時間研究阿里的分庫框架cobar-client,cobar-client是基於ibatis的SqlMapClientTemplate進行了一層薄薄的封裝,分裝成CobarSqlMapClientTemplate,在使用者在CRUD的時候可以透明的進行操作,算是現在大多公司分庫的一個成熟解決方

    資料庫 分庫中介軟體 Cobar 介紹

    最近好不容易抽空研究了下Cobar,感覺這個產品確實很不錯(在文件方面比Amoeba強多了),特此推薦給大家。Cobar是阿里巴巴研發的關係型資料的分散式處理系統,該產品成功替代了原先基於Oracle的資料儲存方案,目前已經接管了3000+個MySQL資料庫的schema,平均每天處理近50億次的SQL執

    基於代理的資料庫分庫框架 Mycat實踐

    文章共 1796字,閱讀大約需要 4分鐘 ! 概 述 在如今海量資料充斥的網際網路環境下,分庫分表的意義我想在此處就不用贅述了。而分庫分表目前流行的方案最起碼有兩種: 方案一:基於應用層的分片,即應用層程式碼直接完成分片邏輯 方案二:基於代理層的分片,即在應用程式碼和底層資料庫中

    基於代理的資料庫分庫框架 Mycat實踐 侵立刪

    轉自:http://www.spring4all.com/article/1817   概 述 在如今海量資料充斥的網際網路環境下,分庫分表的意義我想在此處就不用贅述了。而分庫分表目前流行的方案最起碼有兩種: 方案一:基於應用層的分片,即應用層程式碼直接完成分片邏輯

    分庫框架Sharding-jdbc以及分散式worker:Elastic-job的使用與踩坑

    一、為什麼要使用Sharding      在當今網際網路企業中,資料成倍增長是一個很頭疼的問題。由於資料庫中一張表存入的資料越多,對資料庫操作的資料就越慢。但是我們如果根據指定的分庫分表策略,將資料分散的到不同的表上,我們查詢時,根據全域性主鍵,只掃某個庫的某一張表,這樣即

    基於代理的數據庫分庫框架 Mycat實踐

    行操作 修改 word 參考 接下來 orien ner imageview org 192.168.199.75 MySQL 、 MyCAT master 192.168.199.74 MySQL slave

    使用淘寶中介軟體cobar實現mysql分庫

    cobar 編譯安裝配置筆記 https://github.com/alibaba/cobar windows下使用eclipse匯入cobar專案,eclipse File -> Import -> Git https://github.com/alibab

    資料庫分庫分表(sharding)系列(三) 關於使用框架還是自主開發以及sharding實現層面的考量 資料庫分庫分表(sharding)系列(二) 全域性主鍵生成策略 資料庫分庫分表(sharding)系列(一) 拆分實施策略和示例演示

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    資料庫分庫 sharding 系列 三 關於使用框架還是自主開發以及sharding實現層面的考量

                    當團隊對系統業務和資料庫進行了細緻的梳理,確定了切分方案後,接下來的問題就是如何去實現切分方案了,目前在sharding方面有不少的開源框架和產品可供參考,同時很多團隊也會選擇自主開發實現,而不管是選擇框架還是自主開發,都會面臨一個在哪一層上實現sharding邏輯的問題,本文

    學習dangdang的分庫擴充套件框架sharding-jdbc(一)

    噹噹開源的sharding-jdbc,官方網址:https://github.com/dangdangdotcom/sharding-jdbc   一、簡介 好了,看了這麼多的介紹,感覺還是很高大上的,注意點有: ①對JDBC API進行了原生態的分裝,這是與cobar-c

    淘寶TDDL資料庫分庫

    1. 分庫分表,而且分庫規則非常靈活. 2. 主鍵生成策略  目前TDDL提供的id生成主要還是依託資料庫來進行的,oracle可以直接使用sequence來完成id生成,mysql則需要DBA建立一個表專門用於生成id. 3. 連線查詢策略 雖然TDDL目前並不直接

    資料庫分庫(sharding)系列(三) 關於使用框架還是自主開發以及sharding實現層面的考量

    當團隊對系統業務和資料庫進行了細緻的梳理,確定了切分方案後,接下來的問題就是如何去實現切分方案了,目前在sharding方面有不少的開源框架和產品可供參考,同時很多團隊也會選擇自主開發實現,而不管是選擇框架還是自主開發,都會面臨一個在哪一層上實現sharding邏輯的問題,本

    學習sharding-jdbc 分庫擴充套件框架

    前一段時間研究阿里的分庫框架cobar-client,cobar-client是基於ibatis的SqlMapClientTemplate進行了一層薄薄的封裝,分裝成CobarSqlMapClientTemplate,在使用者在CRUD的時候可以透明的進行操作,算是現

    MySQL分庫備份腳本

    數據庫備份數據庫腳本[[email protected]/* */ script]# cat store_backup.sh #!/bin/shMYUSER=rootMYPASS=qwe123SOCKET=/data/3306/mysql.sockMYLOGIN="mysql -u$MYUSER

    數據庫(分庫)中間件對比

    系統瓶頸 地址 ring 缺點 無需 網絡io 數據遷移 用戶 osql 轉自:http://www.cnblogs.com/cangqiongbingchen/p/7094822.html 分區:對業務透明,分區只不過把存放數據的文件分成了許多小塊,例如mysql中的一張

    架構師速成8.3-可用性之分庫

    路由 運行 進行 一鍵 常量 popu 同步 width track 有狀態分布式,涉及的知識就比較多了,只是我們能夠拿幾個現實的樣例由淺入深的來理解。 數據庫的分庫分表 如果你是一個開發負責人,開始使用單機的數據庫,突然一天數據庫硬盤掛掉了。你沒有

    16、MySQL數據庫分庫備份腳本

    mysql數據庫分庫分表備份腳本MySQL數據庫分庫分表備份腳本===================學員分享分庫分表==========================腳本單雙引號的區別:單引號是強引用,強制輸出是所見即所得。雙引號是解析變量 和 多個字符串、數字等連接一個字符串條件1 || 條件2

    MyBatis實現Mysql數據庫分庫操作和總結

    用戶表 設計 行數 百萬 出現問題 網絡 自增 .html tro 閱讀目錄 前言 MyBatis實現分表最簡單步驟 分離的方式 分離的策略 分離的問題 分離的原則 實現分離的方式 總結 前言 作為一個數據庫,作為數據庫中的一張表,隨著用戶的增多隨著時間的推移,總有一

    記錄一次經歷的數據庫從單庫到分庫的過程

    人力 per 靠譜 img center 沒有 tdd 推出 數據 前言 目前所在的的項目組,由於項目正在處於一個業務爆發期,每天數據的增長量已經給我們數據庫乃至系統造成了很多不確定的因數,前期依靠優化業務和SQL等方式暫時還能夠支撐住。但是最近發現某些表數據達到50

    MySQL 高可用:mysql+mycat實現數據庫分片(分庫

    native 分布 for 成功 img 問題 represent apache 新一代 本文引用於http://blog.csdn.net/kk185800961/article/details/51147029 MySQL 高可用:mysql+mycat實現數據庫分片(