TDDL


解决的问题

1、单一数据库无法满足性能需求

读写分离、垂直分表、水平分表、分布式事务

2、系统容灾

3、运维管理

原理

整体结构

执行原理

执行流程

核心组件

Matrix层

1、解决分库分表带来的问题,影响数据访问的路由;

2、解决事务问题

  • 固定哈希算法
  • 一致性哈希算法
  • 自定义路由:
    • 如userId%表大小

Group 层

作用:

读写分离

主备切换

权重选择

数据保护:数据库连接down后,保护程序不会因为数据库挂掉而整体卡死

Atom层

基于Druid连接池

作用:

动态创建、添加、减少数据源

对数据库做了代理,对单库的jdbc进行了封装

统计计数

Sequence

单数据源

使用DefaultSequenceDao

多数据源

使用使用GroupSequenceDao

多个实例的Sequence表

value步长 = innerStep * dscount

关键参数:

dscount:数据源的个数,值需要大于等于实际的数据源个数

可以大于数据源:为以后增加数据源预留空间、为单元化多数据源提供基础

dbGroupKeys:对应tddl中group name


文章作者: 王利康
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 王利康 !
  目录