zebra:基于Jdbc的拓展

以前做读写分离,分库分表设计都是从Mybatis层介入,需要很复杂工作,业务侵入很大。后面在工作中使用的zebra基于Jdbc的api进行封装,将多个数据源封装到一个数据源,提供给上层的视图是统一的数据源,这样完全不侵入上层却定制了丰富的操作,不得不说思路非常好,这里推荐大家去看一下zebra在github上的源码,代码量很小,实现的功能却很强大,整体代码结构层次清晰,流畅。

概览

具体使用就不说了,api文档都是中文的,这是点评团队开源的,很感谢这些团队的成员。

这里我理解的读写分离实现部分,可以很明显的看出来对上层提供一个数据源对象,在下层使用时可以根据不同的sql行为或者ThreadLocal参数指定不同的数据源。


zebra:基于Jdbc的拓展_第1张图片
读写分离概览

对Mybatis来说它只展现了一个数据源视图,Mybatis完全感知不到它,不侵入业务也不侵入Mybatis,将ORM也隔离开了。这就是基于Jdbc封装的优势,功能强大,无侵入。

其他

说实话第一次接触zebra我被深入Jdbc封装跳过ORM框架去解决多数据源路由这种思路惊艳到了。
总有更好的思路去解决问题,如果你觉得面对的问题很难处理,可能是你还没深入到能简单解决这个问题的高度。共勉

你可能感兴趣的:(zebra:基于Jdbc的拓展)