分布式数据库中间件—TDDL

分布式数据库中间件—TDDL

一. 概念

1.分层
  1. Matrix层
    1. 作用:实现分库分表逻辑
    2. 过程:
      1. Sql的解析
      2. 规则的匹配与计算
      3. 表名替换
      4. Sql转发:将上一步生成的各个sql语句转发到对应的Group进行执行
  2. Group层
    1. 作用:实现了数据库的Master/Salve模式的写分离逻辑
    2. 过程:
      1. 根据权重选择AtomDs:在主节点和副节点读数据,只在主节点写数据
      2. 具有重试的策略地在AtomDs上执行SQL
  3. Atom层
    1. 作用:实现数据库ip,port , password , connectionProperties 等信息的动态推送,以及持有原子的数据源分离的JBOSS数据源)。
    2. 过程:
      1. 读写数控制,线程并发数控制
      2. 执行sql返回结果集(返回给Matrix)
2.图示
  1. 执行流程
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8iMwXZcY-1574921477381)(en-resource://database/6115:1)]

  2. 工作流程
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8MPKmGiN-1574921477382)(en-resource://database/6113:1)]

二. 使用

  1. 添加依赖
<dependency>
	<groupId>com.taobao.tddl</groupId>
	<artifactId>tddl-interact</artifactId>
	<version>3.0.1.5.taobaocode-SNAPSHOT</version>
</dependency>
<dependency>
	<groupId>com.taobao.tddl</groupId>
	<artifactId>tddl-group-datasource</artifactId>
	<version>3.0.1.5.taobaocode-SNAPSHOT</version>
</dependency>
<dependency>
	<groupId>com.taobao.diamond</groupId>
	<artifactId>diamond-utils</artifactId>
	<version>2.0.5.3.taocode-SNAPSHOT</version>
</dependency>
  1. 在spring配置文件中配置tddl数据源
<bean id="dataSource" class="com.taobao.tddl.jdbc.group.TGroupDataSource" init-method="init">  
     <property name="appName" value="tddl_sztce"></property>  
     <property name="dbGroupKey" value="group_sample"></property>     
</bean> 
  1. 将数据源配置到jdbc、ibatis等Template中了
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
	<constructor-arg>
		<ref bean="dataSource" />
	</constructor-arg>
</bean>

<!-- mybatis -->
<bean id="log4jHolder" class="com.xxx.xxx.mybatis.MyBatisLogHolder" lazy-init="false" init-method="useLog4JLogger"></bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="configLocation" value="classpath:META-INF/db/myBatis-configuration.xml"></property>
	<property name="dataSource" ref="dataSource" />
	<property name="mapperLocations" value="classpath*:com/xxx/xxxx/mappings/**/*Dao.xml" />
</bean>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值