1. 程式人生 > >學習sharding-jdbc 分庫分表擴充套件框架

學習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個庫中執行:

  1. CREATETABLE IF NOT EXISTS `t_order_0` (  
  2.   `order_id` INTNOT
    NULL,  
  3.   `user_id`  INTNOTNULL,  
  4.   PRIMARYKEY (`order_id`)  
  5. );  
  6. CREATETABLE IF NOT EXISTS `t_order_item_0` (  
  7.   `item_id`  INTNOTNULL,  
  8.   `order_id` INTNOTNULL,  
  9.   `user_id`  INTNOTNULL,  
  10.   PRIMARYKEY (`item_id`)  
  11. );  
  12. CREATETABLE IF NOT EXISTS `t_order_1` (  
  13.   `order_id` INTNOTNULL
    ,  
  14.   `user_id`  INTNOTNULL,  
  15.   PRIMARYKEY (`order_id`)  
  16. );  
  17. CREATETABLE IF NOT EXISTS `t_order_item_1` (  
  18.   `item_id`  INTNOTNULL,  
  19.   `order_id` INTNOTNULL,  
  20.   `user_id`  INTNOTNULL,  
  21.   PRIMARYKEY (`item_id`)  
  22. );  

新建maven專案

Maven依賴的pom.xml

  1. <projectxmlns="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.     <groupId>org.study</groupId>
  5.     <artifactId>sharding-jdbc</artifactId>
  6.     <version>0.0.1-SNAPSHOT</version>
  7.     <packaging>jar</packaging>
  8.     <name>sharding-jdbc</name>
  9.     <url>http://maven.apache.org</url>
  10.     <properties>
  11.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  12.         <spring.version>3.2.5.RELEASE</spring.version>
  13.         <mybatis.version>3.2.4</mybatis.version>
  14.     </properties>
  15.     <dependencies>
  16.         <dependency>
  17.             <groupId>junit</groupId>
  18.             <artifactId>junit</artifactId>
  19.             <version>4.10</version>
  20.         </dependency>
  21.         <dependency>
  22.             <groupId>com.dangdang</groupId>
  23.             <artifactId>sharding-jdbc-core</artifactId>
  24.             <version>1.0.0</version>
  25.         </dependency>
  26.         <dependency>
  27.             <groupId>org.springframework</groupId>
  28.             <artifactId>spring-orm</artifactId>
  29.             <version>${spring.version}</version>
  30.         </dependency>
  31.         <dependency>
  32.             <groupId>commons-dbcp</groupId>
  33.             <artifactId>commons-dbcp</artifactId>
  34.             <version>1.4</version>
  35.         </dependency>
  36.         <dependency>
  37.             <groupId>

    相關推薦

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

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

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

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

    sharding-jdbc分庫規則(1)-單查詢

    前言 當資料量到達一定數量級的時候,一般都會考慮分庫分表。sharding-jdbc是一個開源的客戶端分庫分表基礎類庫,以一個jar包的形式提供,基於原生的JDBC驅動進行增強,基本能夠無縫整合舊程式碼,非常的便捷。本小節以一個最簡單的單表查詢淺析概要流程。

    SpringBoot使用Sharding-JDBC分庫

    ber password view select ext dep 簡單配置 匹配 nap 本文介紹SpringBoot使用當當Sharding-JDBC進行分庫分表。 1.有關Sharding-JDBC 有關Sharding-JDBC介紹這裏就不在多說,之前Shardi

    Sharding-JDBC分庫使用例項

    Sharding-JDBC是噹噹開源的用於分庫分表的基礎類庫。定位輕量級java框架,可以通過客戶端直接連線資料庫,只需要在增加額外的資料來源配置就可以輕鬆實現完整的分庫分表功能。 Sharding-JDBC是一個開源的適用於微服務的分散式資料訪問基礎類

    sharding-jdbc 分庫的 4種分片策略,還蠻簡單的

    上文[《快速入門分庫分表中介軟體 Sharding-JDBC (必修課)》](https://mp.weixin.qq.com/s?__biz=MzAxNTM4NzAyNg==&mid=2247488500&idx=1&sn=108bf704a54b0a9638e84698deb3ce4c&chksm=9b8

    利用Sharding-Jdbc實現

    利用Sharding-Jdbc實現分表 由 匿名 (未驗證) 提交於 2018-07-25 15:50:57 132 次瀏覽 閒來無事,喜歡研究一些自己未接觸過的技術~ 看到了噹噹開源的Sharding-JDBC元件,它可以在幾乎不修改程式碼的情況下完成

    Springboot使用sharding進行分庫

    pom.xml檔案加入sharing引用和druid引用 <dependency>             <groupId>com.dangdang</groupId>             <artifactId&

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

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

    dangdang的擴充套件 sharding-jdbc實現動態資料來源分庫頁查詢

    dangdang的擴充套件 sharding-jdbc實現動態資料來源分庫分表分頁查詢 dangdang的分庫分表擴充套件 sharding-jdbc 封裝的DBUtil ModuloDatabaseShardingAlgorithm Modulo

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

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

    數據庫分庫中間件 Sharding-JDBC 源碼分析 —— SQL 解析(六)之刪除SQL

    java 後端 架構 數據庫 中間件關註微信公眾號:【芋道源碼】有福利:RocketMQ / MyCAT / Sharding-JDBC 所有源碼分析文章列表RocketMQ / MyCAT / Sharding-JDBC 中文註釋源碼 GitHub 地址您對於源碼的疑問每條留言都將得到認真回復。甚至不知道如

    數據庫分庫中間件 Sharding-JDBC 源碼分析 —— 布式主鍵

    java 後端 架構 數據庫 中間件關註**微信公眾號:【芋道源碼】**有福利:RocketMQ / MyCAT / Sharding-JDBC 所有源碼分析文章列表RocketMQ / MyCAT / Sharding-JDBC 中文註釋源碼 GitHub 地址您對於源碼的疑問每條留言都將得到認真回復。甚至

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

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

    分庫sharding-jdbc + spring boot對大進行分庫

    一、前言       最近小編跳槽了,剛好入職了一家移動網際網路公司。非常的幸運。來新公司後的第一個專案就是對通知服務進行優化改進,其中,一個業務就是當用戶登入的時候,就會登入訪問通知表,根據使用者id載入通知資訊。由於通知量已經上億了,在查詢的時候是非常慢的。

    Spring Boot 結合 Sharding-Jdbc分庫示例

    對於一些大系統,資料庫資料量很大,業務量特別大的時候,而我們的資料庫及表的對於大資料量的時候,處理的效能就不容樂觀,這個時候我們就需要對我們的資料和表做分庫分表處理了。一般分庫分表都會採用資料庫中介軟體,像Mycat這種中介軟體,它幫我們做資料來源,路由對映控制。而今天介紹的Sharding

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

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

    sharding-jdbc結合mybatis實現分庫功能

    源自:https://www.cnblogs.com/zwt1990/p/6762135.html最近忙於專案已經好久幾天沒寫部落格了,前2篇文章我給大家介紹了搭建基礎springMvc+mybatis的maven工程,這個簡單框架已經可以對付一般的小型專案。但是我們實際專案

    噹噹分庫中介軟體-sharding-jdbc

    使用指南 閱讀本指南前,請先閱讀快速起步。本文件使用更復雜的場景進一步介紹Sharding-JDBC的分庫分表能力。 資料庫模式 本文件中提供了兩個資料來源db0和db1,每個資料來源之中包含了兩組表t_order_0和t_order_1,t_order_item_

    分庫sharding-jdbc—分片策略

    ==> Preparing: select id,order_id,unique_no,quantity,is_active,inserttime,updatetime from t_order_items where is_active = 1 AND order_id in ( ? , ? , ?