1.0 Dragon项目简介

2017-06-05 23:32:45 3,641 2

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:提供分库分表功能。

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