TDDL笔记
发布时间:2023年12月18日
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!