首页 > 其他分享 >业界常见分库分表中间件

业界常见分库分表中间件

时间:2023-07-20 21:22:57浏览次数:42  
标签:分库 数据库 中间件 Mycat Sharding JDBC MySQL 分表

  • Cobar(已经被淘汰没使用了)

  • TDDL

    • 淘宝根据自己的业务特点开发了 TDDL (Taobao Distributed Data Layer)
    • 基于JDBC规范,没有server,以client-jar的形式存在,引入项目即可使用
    • 开源功能比较少,阿里内部使用为主
  • Mycat

    • 地址 http://www.mycat.org.cn/
      • Java语言编写的MySQL数据库网络协议的开源中间件,前身 Cobar
      • 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理
      • 是基于 Proxy,它复写了 MySQL 协议,将 Mycat Server 伪装成一个 MySQL 数据库
      • 和ShardingShere下的Sharding-Proxy作用类似,需要单独部署
  • ShardingSphere 下的Sharding-JDBC

    • 地址:https://shardingsphere.apache.org/

    • Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈

      • 它由 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar 3个独立产品组合
    • Sharding-JDBC

      • 基于jdbc驱动,不用额外的proxy,支持任意实现 JDBC 规范的数据库

      • 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖

      • 可理解为加强版的 JDBC 驱动,兼容 JDBC 和各类 ORM 框架

  • Mycat和ShardingJdbc区别

    • 两者设计理念相同,主流程都是SQL解析-->SQL路由-->SQL改写-->结果归并

      • sharding-jdbc

        • 基于jdbc驱动,不用额外的proxy,在本地应用层重写Jdbc原生的方法,实现数据库分片形式
        • 是基于 JDBC 接口的扩展,是以 jar 包的形式提供轻量级服务的,性能高
        • 代码有侵入性
      • Mycat

        • 是基于 Proxy,它复写了 MySQL 协议,将 Mycat Server 伪装成一个 MySQL 数据库
          • 客户端所有的jdbc请求都必须要先交给MyCat,再有MyCat转发到具体的真实服务器
          • 缺点是效率偏低,中间包装了一层
          • 代码无侵入性

标签:分库,数据库,中间件,Mycat,Sharding,JDBC,MySQL,分表
From: https://www.cnblogs.com/xietingwei/p/17569693.html

相关文章

  • 在 asp.net core 的中间件中返回具体的页面
    前言#在asp.netcore中,存在着中间件这一概念,在中间件中,我们可以比过滤器更早的介入到http请求管道,从而实现对每一次的http请求、响应做切面处理,从而实现一些特殊的功能在使用中间件时,我们经常实现的是鉴权、请求日志记录、全局异常处理等等这种非业务性的需求,而如果你有......
  • mysql常用中间件
    实现MySQL常用中间件的流程步骤步骤描述步骤一安装和配置MySQL数据库步骤二下载和安装MySQL中间件步骤三配置中间件和数据库连接步骤四测试中间件连接和功能步骤一:安装和配置MySQL数据库在开始实现MySQL常用中间件之前,首先需要安装和配置MySQL数据库......
  • SpringBoot + Sharding JDBC 分库分表
    Sharding-JDBC最早是当当网内部使用的一款分库分表框架,到2017年的时候才开始对外开源,这几年在大量社区贡献者的不断迭代下,功能也逐渐完善,现已更名为ShardingSphere,2020年4⽉16日正式成为Apache软件基金会的顶级项目。ShardingSphere-Jdbc定位为轻量级Java框架,在Java的Jdbc层提......
  • python部分库使用笔记
    pyecharts官网pyecharts是一个用于生成Echarts图表的类库。Echarts是百度开源的一个数据可视化JS库。用Echarts生成的图可视化效果非常棒,pyecharts是为了与Python进行对接,方便在Python中直接使用数据生成图。pip下载pyecharts:pipinstallpyechartspip查询py......
  • asp.net core的中间件
    中间件是asp.netcore的核心,甚至可以说asp.netcorewebapi应用就是一个中间件管道,接口请求和响应一来一回。中间件,就是装配到这个管道中用来处理请求响应的组件。关于中间件的使用,有三个核心方法:核心方法Useapp.Use(async(context,next)=>{//代码awaitnext.I......
  • ShardingJDBC 04_分库实战
    1创建数据库分别创建两个数据库,并在数据库中创建两个相同的表。这里创建的数据库是:shardingjdbc1,shardingjdbc2并在数据库下创建两张表:orders,order\_infoCREATETABLEorders(idINT(11)NOTNULLAUTO\_INCREMENT,customerVARCHAR(50)NULLDEFAULT'0'COLLATE'utf8mb4\_b......
  • 项目使用分库分表
     股票关联分管人的分管中心,标的信息,投标信息,先对数据库进行分库,相同发标人的数据还要保证不能分散,就用的任务id+发标人的分管人id进行基因法拼凑,避免跨库查询 ......
  • 数据库设计 垂直分库 垂直分表
    分析师和研报的数据仅进行了垂直分库,分析师库和研报数据库。 研报信息还进行了垂直分表,研报主题,标题概要,打标的标签,第一署名,提交人等,研报主体内容和和研报相关的机构打分等非主题信息进行垂直分表        ......
  • 分库分表建表阶段 绑定表问题要注意
    垂直分表,一个表的字段分散到多个表里面,每个表都存储其中一部分字段,减少io争抢,减少锁表的几率。同时发挥高频数据的操作效率,冷热数据进行分离1、把不常用的字段单独放到一张表里面2.把text,bolb等大字段拆分出来单独放在一张表里面3.经常组合查询的字段单独放到一张表里面垂直......
  • shardingJDBC分表
    spring:shardingsphere:datasource:names:ds-0ds-0:connectionTimeout:500000#连接超时时间type:com.zaxxer.hikari.HikariDataSourcejdbcUrl:username:password:driver-class-name:com.mys......