1.0 Dragon项目简介
2017-06-05 23:32:45
22,605
5
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:提供分库分表功能。
关于这两个数据源如何使用,详见后面的章节的分析。为了方便读者对分库分表和读写分离有一个基本的认识,后面两节将首先介绍当下互联网数据库的拆分过程,以及主流的数据库中间件设计方案。
下一篇:1.1 数据库拆分过程及挑战
