• Java并发编程
  • JVM
  • JMX
  • Java数据结构与算法
  • 动态字节码生成技术
  • 常用工具
  • 1.0 Dragon项目简介

    2017-06-05 23:32:45 24,451 5

    Image.jpg


    1.1 什么是Dragon

        dragon是一个支持分库分表和读写分离的数据源。与druid、dbcp、c3p0等数据源一样,都实现了JDBC规范定义的接口,因此可以很容易的与各种ORM框架进行整合。


    1.2 Dragon项目名称的由来

       dragon提供了读写分离和分库分表的功能,在实现的过程中,笔者发现实现分库分表功能,比实现读写分离功能复杂的多。在分库分表中,最复杂的部分莫过于对sql的解析,这需要掌握一些编译原理相关的知识,编译原理三大圣经中的龙(Dragon)书,是必备的参考书籍,因此项目起名为Dragon。

    1.3 项目中引入dragon

    项目已经发布到Maven中央仓库,可以通过以下方式引入依赖 

    <dependency>
    <groupId>com.tianshouzhi</groupId>
    <artifactId>dragon-core</artifactId>
    <version>1.0.0</version>
    </dependency>

    jar包中提供了2个java.sql.DataSource的实现:

  • DragonHADataSource:提供读写分离功能

  • DragonShardingDataSource:提供分库分表功能。

  • 关于这两个数据源如何使用,详见后面的章节的分析。为了方便读者对分库分表和读写分离有一个基本的认识,后面两节将首先介绍当下互联网数据库的拆分过程,以及主流的数据库中间件设计方案。