TDDL笔记

2023-12-18 17:42:07

TDDL分三层:

Matrix层;

  • 规则的管理
    • 固定哈希算法,基本能保证数据均匀分布,它也是 TDDL 的默认路由算法。根据某个字段(如整形的 id 或者字符串的 hashcode)对分库的数量或者分表的数量进行取模,根据余数路由到对应的位置。
    • 一致性哈希算法,固定哈希算法带来的数据迁移成本是非常大的,而一致性哈希算法的原理就是通过该算法计算出 key 的 hashcode 之后对 2^32 取模,那么数据都会落在 0~2^32 所组成的环中,然后数据存储在顺时针方向最近的机器上。一致性哈希已经可以解决大部分数据迁移需求了,但是对于数据集中在热点的情况,一致性哈希同样面临比较大的挑战,引入虚拟节点之后,情况就不一样了,所谓虚拟节点,它就是物理节点的映射,一个物理节点可以复制出多个虚拟节点,尽可能的让它均匀分布在环上,那么即使数据再集中,很好地起到了负载均衡的作用。
    • 自定义路由规则,TDDL 也支持
  • SQL语句的解释、优化和执行
  • 各个子表查询出来结果集的Merge
  • 事务的管理

Group层;

  • 数据库读写分离
  • 主备切换
  • 权重的选择(根据权重选择要去读哪些库)
  • 数据保护,数据库down掉后的线程保护, 数据库挂掉后的线程保护,不会因为一个数据库挂掉导致所有线程卡死。

Atom层;

  • 动态创建,添加,减少数据源
  • 底层对物理数据库做了代理,对单库的JDBC做了一层封装,执行底层单库的SQL
  • 统计计数(线程数、执行次数)

TDDL sql调用过程:

文章来源:https://blog.csdn.net/wkk2620632/article/details/135063779
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。