TDDL学习

TDDL在ibatis之下,而在jdbc之上,也就是框架中的框架层。
在这里插入图片描述

结构
Matrix层:分库分表所带来的问题是在 Matrix 层解决 ,包括SQL解释、优化和执行等
Group层:中间层是经过读写分离和主备切换才会出现最底层,因此读写分离与主备切换的工作由 Group 层解决
Atom层:它面对的是实实在在的每一个数据库,更多的工作在与对数据库的连接管理,比如说当数据库的 IP 地址发生改变时,Atom 层要动态感知,以免连接找不到地址

Matrix
分库分表,解释优化。

分库分表的方式。
使用hash算法。
常见的固定hash算法,扩容的时候,将数据进行重新的加载。因为模数不同。

一致性hash,在扩容的时候,更加的平滑。

Group
主库和备库是不同的分配方式。
主库是买家的id进行分库进行的,而从库则可以,利用卖家的id进行分库。(好骚啊)

Atom
Atom 模块真正和物理数据库交互,提供数据库配置动态修改能力。
改层负责动态创建,添加,减少数据源。管理着底层的数据库IP,连接等信息;底层对物理数据库做了代理,对单库的JDBC做了一层封装,执行底层单库的SQL;线程数、执行次数等状态的统计等。

流程

Id生成
分为内步长和外步长2种。
保证唯一,不保证自增。

会有专门的id数据库储存,可以是多个数据库进行。
而多个数据库,往往是按照固定递增的形式。例如分配4台,开始是0,之后就是从4000,之后就是8000这种。
能够保证不重叠。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值