Zebra 美团点评 内部使用的 数据库访问层中间件

https://github.com/Meituan-Dianping/Zebra

有坑注意:

一、 目前仅支持local方式的使用GroupDataSource(多数据源配置),如果要实现 jdbcRef.properties 的remote配置,需要自行实现RemoteConfigService中的相应方法。

二、zebra是一个读写分离的数据源,如果在事务中,那默认所有在事务中的操作均将路由到主库进行操作。

三、分库分表后,不能写诸如join,group by,limit等复杂的SQL。一来,性能差;二来,zebra未必支持。

四、dbRule、tbRule表达式内置了crc32md5两个函数,可以用来生成唯一值;tbSuffix是表的后缀命名规则,分everydballdb。建议用alldb,分表会先按照分库的数量再次均分。

五、Batch INSERT sql语句,仅支持Values后的多行记录是确定到某个库某张表上的。暂不支持Values后的多条记录落到不同的库和表。

六、zebra-dao的CallbackFuture两种异步化方式 都必须要同时定义同步和异步的方法,方法名和异步方法扣除回调参数的其他参数都要相同(异步方法返回类型为void) /  方法名和异步方法除了返回类型是Future其他都相同。如果异步的方法想要定义一个和同步方法名不一样的名字,需要使用TargetMethod这个annotation指定所需要的同步方法是哪个。

七、zebra-dao配置物理分页可以使用PageModel,使用这个对象就可以获得recordCount(总数)和records(结果数据)。一旦使用了PageModel的方式,必须是配置了物理分页,并且方法的返回值必须为void

猜你喜欢

转载自blog.csdn.net/wangpeng322/article/details/84567314
今日推荐