1. 程式人生 > >【死磕Sharding-jdbc】---準備工作

【死磕Sharding-jdbc】---準備工作

接下來對sharding-jdbc原始碼的分析基於tag為1.5.4.1原始碼,根據sharding-jdbc Features深入學習sharding-jdbc的幾個主要特性是如何實現的;

概況

sharding-jdbc原始碼主要有以下幾個模組:sharding-jdbc-config-parentsharding-jdbc-coresharding-jdbc-docsharding-jdbc-examplesharding-jdbc-pluginsharding-jdbc-transaction-parent;由模組命名很容易知道模組的作用:

  • sharding-jdbc-config-parent:配置相關原始碼;
  • sharding-jdbc-core:核心原始碼;
  • sharding-jdbc-doc:文件,都是markdown格式,對應github上的sharding-jdbc-doc
  • sharding-jdbc-example:針對各個模組的測試用例程式碼;
  • sharding-jdbc-plugin:目前只有KeyGenerator的三種實現;
  • sharding-jdbc-transaction-parent:事務相關原始碼;

    201805031021

依賴的技術棧

  1. lombok(能夠簡化java的程式碼,不需要顯示編寫setter,getter,constructor等程式碼,其原理是作用於javac階段。通過反編譯class檔案能夠看到還是有通過lombok省略的setter,getter,constructor等程式碼)
  2. google-guava(google開源的google使用的Java核心類)
  3. elastic-job(sharding-jdbc-transaction-async-job模組依賴elastic-job實現分散式定時任務)
  4. inline表示式(sharding-jdbc分庫分表規則表示式採用inline語法,可以參考InlineParserTest.java這個測試類中一些inline表示式)

在閱讀sharding-jdbc原始碼之前,建議對這些技術有一定的瞭解;

sharding-jdbc架構圖

201805031022

sharding-jdbc-doc

請單擊sharding-jdbc-doc

,閱讀sharding-jdbc原始碼之前,建議看一下sharding-jdbc官方文件,對其原理和一些概念,以及初級使用有一個大概的瞭解;

sharding-jdbc實現剖析

接下來的原始碼分析文章大概分析(但不侷限於)sharding-jdbc的這些核心功能;

  1. 分片規則配置說明
  2. SQL解析
  3. SQL路由
  4. SQL改寫
  5. SQL執行
  6. 結果歸併

Debug sharding-jdbc

學習開源元件的最好的辦法就是了解它的原理後,下載它的原始碼,然後Run起來;sharding-jdbc的測試用例寫的非常詳細,sharding-jdbc-example-jdbc模組中的com.dangdang.ddframe.rdb.sharding.example.jdbc.Main就是一個很好的debug入口,想要正常執行這個測試用例,只需簡單的如下幾個步驟即可:

  1. 在本地安裝一個mysql資料庫;
  2. 建立兩個資料庫:ds_jdbc_0和ds_jdbc_1;
  3. just run it;

說明:sharding-jdbc原始碼預設使用的訪問資料庫的使用者為root,密碼為空字串;

歡迎掃一掃我的公眾號關注 — 及時得到部落格訂閱哦!

–— Java成神之路: 488391811(一起走向Java成神) –—
這裡寫圖片描述