数据库中间件:sharding-jdbc,mycat,DRDS

1.sharding-jdbc

1.图示(集成的方式)

 


 

  2.特点(组件,适配语言)

   1)sharding-jdbc 作为一个组件集成在应用内

   2)集成在应用内,要集成到代码里,开发成本相对较高;

      需要针对不同语言(java、C、PHP……)有不同的实现

      事实上sharding-jdbc目前只支持java,这样组件

      本身的维护成本也会很高

 

  3.三大模块

    ShardingSphere-JDBC:

     定位:

      轻量级Java框架,在Java的JDBC层提供的额外服务。

      它使用客户端直连数据库,以jar包形式提供服务,

      无需额外部署和依赖,可理解为增强版的JDBC驱动,

      完全兼容JDBC和各种ORM框架

    场景:

    (1)适用于任何基于JDBC的ORM框架,

        如:JPA, Hibernate, Mybatis,

        Spring JDBC Template 或直接使用JDBC

    (2)支持任何第三方的数据库连接池,

        如:DBCP, C3P0, BoneCP, Druid, HikariCP等

    (3)支持任意实现JDBC规范的数据库,

        目前支持MySQL,Oracle,SQLServer,PostgreSQL

        以及任何遵循SQL92标准的数据库

 

   ShardingSphere-Proxy:

     定位:

       透明化的数据库代理端,

       提供封装了数据库二进制协议的服务端版本,

       用于完成对异构语言的支持。

       目前提供MySQL和PostgreSQL版本,

       它可以使用任何兼容MySQL/PostgreSQL协议的访问客户端

       如:MySQL Command Client, MySQL Workbench, Navicat等

       操作数据,对DBA更加友好

    优点:

    (1)向应用程序完全透明,可直接当做

        MySQL/PostgreSQL 服务端使用

    (2)适用于任何兼容 MySQL/PostgreSQL

        协议的的客户端

   ShardingSphere-Sidecar(TODO):

      定位:

       为Kubernetes的云原生数据库代理,

       以Sidecar的形式代理所有对数据库的访问。

       通过无中心、零侵入的方案提供与数据库交互的的啮合层,

       即Database Mesh,又可称数据库网格

 

       Database Mesh 的关注重点在于如何将分布式的数据

       访问应用与数据库有机串联起来,它更加关注的是交互,

       是将杂乱无章的应用与数据库之间的交互进行有效地梳理。

       使用Database Mesh,访问数据库的应用和数据库终将形成

       一个巨大的网格体系,应用和数据库只需在网格体系中对号

       入座即可,它们都是被啮合层所治理的对象

      

 

 


 

2.mycat

1.图示(服务器的方式

 

   2.作用(数据库代理)

     mycat支持SQL92标准,遵守Mysql原生协议,

     跨语言,跨平台,跨数据库的通用中间件代理

  

  3.特点

    需要单独部署,不支持二维路由,仅支持单库多表或多库单表

    自身维护有连接池,需要根据业务设置,否则容易抛出异常

    mycat以逻辑表的形式屏蔽掉应用处理分库分表的复杂逻辑,

    遵守Mysql原生协议,跨语言,跨平台,有着更为通用的应用场景

    

 

3.DRDS(mycat商业产品化)

1.介绍
DRDS兼容MySQL 协议和语法,
支持分库分表、平滑扩容、服务升降配、
透明读写分离和分布式事务等特性,
具备分布式数据库全生命周期的运维管控能力
drds不是一个简单的做sharding路由,
即使原来使用的是rds,也无法通过drds做路由,
唯一的办法新建drds实例,定义路由规则(
drds支持二维路由),导入历史数据

2.图示(读写分离的例子)
  

 

 

学习来源:

     sharding-jdbc,mycat,DRDS:

      https://blog.csdn.net/xiaojin21cen/article/details/105711180

    sharding-jdbc官网:

      https://shardingsphere.apache.org/

    sharding-jdbc源码:

       https://gitee.com/Sharding-Sphere/sharding-sphere

       https://github.com/apache/shardingsphere

   mycat的部署和分表分库的规则设置:

      https://www.cnblogs.com/chuangcc/p/14331041.html

   mycat取模:

      https://www.cnblogs.com/alan319/p/10556979.html

   java项目集成mycat(当做数据库使用):

     https://blog.csdn.net/u010542488/article/details/104208643

     https://www.cnblogs.com/zeussbook/p/12941466.html

  https://blog.csdn.net/xiaojin21cen/article/details/105711180

 DRDS阿里产品指南:

   https://help.aliyun.com/product/29657.html

    

posted @ 2021-03-05 11:11  小窝蜗  阅读(1487)  评论(0编辑  收藏  举报