zeus,轻量级持久层框架 博客分类: 持久层架构sharding 读写分离分库分表zeus持久层框架
,由于工作原因,把工作相关技术整合成一个持久层框架:zeus,它是一个基于spring jdbctemplate的,maven构建的轻量级持久层框架(支持oracle和mysql),吸收了淘宝tddl相关的优点,开放*;实现了数据源动态切换不重启应用(和zookeeper配合),读写分离,分库分表, 正如他的名字一样,zeus(宙斯)众神之王,希望他能走下去!
说说他的优点:
1.它是java代码方式持久层框架,避免了类似hibernate,mybatis类似有xml配置文件出错,无语法检查,调式困难的问题;对于一个表比如 tbda001 ,那么他的持久层由 Dajc001DAO.java(空类,继承于base,用户自定义扩展代码放的位置),DAjc001DAObase.java(继承于框架底层基类,是实现tbda001基础操作类,目前是增删改增,都是预处理实现),Dajc001VO.java(是tbda001的bean,用来承载数据),过段时间会放出他的代码生成工具.
2.它是基于jdbctemplate的实现,完美和spring结合无问题,支持datasource注入,自带oracle和mysql分页.
3.zeus底层datasource选择最好方案是druiddatasource,可以实现动态切换功能,另外还可以把数据源相关信息配置到zookeeper上.
4.它支持读写分离,主要由类DynamicDataSource.java实现(线程安全).
5.它最神奇的功能:分库分表,架构思想来源于淘宝的持久层框架tddl,采用spring注释作为分库分表操作依据,通过java代码类实现策略(当然也是可以重载我的策略的),分库分表是不支持事务的,但如果只分表,支持事务.
项目源码目前在taocode上,过几天会登陆github,
http://code.taobao.org/svn/zeus-framework/
当前已经释放了和spring事务整合版本,读写分离和分库分表单元测试正在进行中