Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 566|回复: 0

【分库分表】sharding-jdbc—解决的问题

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-4-16 12:16:13 | 显示全部楼层 |阅读模式

    一、遇到的问题

    随着互联网技术和业务规模的发展,单个db的表里数据越来越多,sql的优化已经作用不明显或解决不了问题了,这时系统的瓶颈就是单个db了(或单table数据太大)。这时候就涉及到分库分表的问题了,很多开源解决方案来解决这个问题。比如(排名不分先后):

    本片主要以sharding-jdbc为例研究下分库分表的实施方案。

    二、sharding-jdbc简介

    1. Sharding-JDBC是一个开源的适用于微服务的分布式数据访问基础类库。
    2. Sharding-JDBC定位为轻量级java框架,使用客户端直连数据库,以jar包形式提供服务,未使用中间层,无需额外部署,无其他依赖,DBA也无需改变原有的运维方式,可理解为增强版的JDBC驱动,旧代码迁移成本几乎为零。
    3. Sharding-JDBC完整的实现了分库分表,读写分离和分布式主键功能,并初步实现了柔性事务。
    4. 性能比较,摘录自官方:

    三、解决的问题

    1. 分库分表

    • SQL解析功能完善,支持聚合,分组,排序,LIMIT,TOP等查询,并且支持级联表以及笛卡尔积的表查询
    • 支持内、外连接查询
    • 分片策略灵活,可支持=,BETWEEN,IN等多维度分片,也可支持多分片键共用,以及自定义分片策略
    • 基于Hint的强制分库分表路由

    2. 读写分离

    • 独立使用读写分离支持SQL透传
    • 一主多从的读写分离配置,可配合分库分表使用
    • 基于Hint的强制主库路由

    3. 柔性事务

    • 最大努力送达型事务
    • TCC型事务(TBD)

    4. 分布式主键

    • 统一的分布式基于时间序列的ID生成器

    5. 兼容性

    • 可适用于任何基于java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC
    • 可基于任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid等
    • 理论上可支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer和PostgreSQL

    6. 灵活多样的配置

    • Java
    • YAML
    • Inline表达式
    • Spring命名空间
    • Spring boot starter

    7. 分布式治理能力 (2.0新功能)

    • 配置集中化与动态化,可支持数据源、表与分片策略的动态切换(2.0.0.M1)
    • 客户端的数据库治理,数据源失效自动切换(2.0.0.M2)
    • 基于Open Tracing协议的APM信息输出(2.0.0.M3)

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-9 21:41 , Processed in 0.069218 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表