tddl

 

 

 

 

 

TDDL动态数据源使用示例说明:http://rdc.taobao.com/team/jm/archives/1645 https://www.cnblogs.com/adealjason/p/6364806.html
diamond简介和快速使用:http://jm.taobao.org/tag/diamond%E4%B8%93%E9%A2%98/
TDDL源码:https://github.com/alibaba/tb_tddl

 

 

1,配置多数据源

 

2.配置com.taobao.tddl.client.jdbc.TDataSource

 

3,配置规则tddl-rule-gcoin.xml

 

4,测试

 

1,<property name="dbRuleArray" value="#pk,1,2#.longValue() % 2"/>     #pk,1,2#当sql语句中有>或<号时必须这样写,1是跨度,2是最大枚举(写大于2的也行)
当sql里既有>又有<时最大枚举无效不用设置也行
2,可用非分片字段做查询,不受规则影响既不用设置#pk,1,2#

<property name="dbIndexes" value="group_cut_0,group_cut_1" />
<property name="dbRuleArray" value="(#pk#.longValue() % 4).intdiv(2)"/>
<property name="tbRuleArray" value="#pk#.longValue() % 4 % 2"/>
<property name="tbSuffix" value="throughAllDB:[_0-_3]" />
1、两库4表tbl_userinfo_0,tbl_userinfo_1,tbl_userinfo_2,tbl_userinfo_3,建表时必须按库的顺序建
2、当使用><号查询时,使用#pk,1,4#

 

1,配置多个数据源

 

2,配置TDateSource

 

3,配置规则

 

<bean id="root" class="com.taobao.tddl.common.config.beans.AppRule"  init-method="init">

      <property name="readwriteRule" ref="readwriteRule" />

   </bean>

   <bean id="readwriteRule" class="com.taobao.tddl.common.config.beans.ShardRule">

      <property name="dbtype" value="MYSQL" />

      <property name="defaultDbIndex" value="group_cut_0" />

      <property name="tableRules">

         <map>

            <!-- key表名 value规则 -->

            <!-- 如果多个表对应同样的规则必须把规则bean设置成sinpleton=false或者复制3个bean -->

            <entry key="tbl_userinfo" value-ref="tbl_userinfo" />

         </map>

      </property>

   </bean>

 

<bean id="tbl_userinfo" class="com.taobao.tddl.common.config.beans.TableRule">

<property name="dbIndexes" value="group_cut_0,group_cut_1,group_cut_2,group_cut_3" />

      &lt;!&ndash; 分库规则 &ndash;&gt;

      <property name="dbRuleArray" value="cn.com.xmh.gfscut.dao.rule.MyDbRule.getIndex(#pk#)"/>

      <property name="tbSuffixWidth" value="4"/>

      <property name="tbSuffixPadding" value="_"/>

      <property name="tbSuffix" value="throughAllDB:[_0000-_0015]" />

      <property name="tbRuleArray" value="cn.com.xmh.gfscut.dao.rule.MyTbRule.getIndex(#pk#)"/>

<property name="disableFullTableScan" value="false"/>

</bean>

 

MyDbRule  自己实现

 

 

 

posted @ 2019-12-08 17:53  苍天一穹  阅读(524)  评论(0编辑  收藏  举报