1. 首页
  2. sharding-jdbc源码分析

0. sharding-jdbc源码分析准备工作

阿飞Javaer,转载请注明原创出处,谢谢!

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:事务相关源码;

    yuanmafenxizhunbeigongzuo_1.png

    sharding-jdbc源码结构示意图

依赖的技术栈

  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架构图

yuanmafenxizhunbeigongzuo_2.png

sharding-jdbc架构图

说明:图片来源于sharding-jdbc官网

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,密码为空字符串;

作者:阿飞的博客

来源:https://www.jianshu.com/p/7831817c1da8


看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「666」 免费领取我精心整理的进阶资源教程
  4. JS中文网,Javascriptc中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,是给开发者用的 Hacker News,技术文章由为你筛选出最优质的干货,其中包括:Android、iOS、前端、后端等方面的内容。目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。

    本文著作权归作者所有,如若转载,请注明出处

    转载请注明:文章转载自「 Java极客技术学习 」https://www.javajike.com

    标题:0. sharding-jdbc源码分析准备工作

    链接:https://www.javajike.com/article/1885.html

« 设计模式第1篇:设计模式简介
分库分表中间件华山论剑»

相关推荐

QR code