shardingsphere(Sharding-Jdbc)

1.shardingsphere官网:

http://shardingsphere.apache.org/index_zh.html

2.Sharding-Jdbc与MyCat区别:

MyCat是一个基于第三方应用中间件数据库代理框架,客户端所有的jdbc请求都必须要先交给MyCat,再有MyCat转发到具体的真实服务器中。

Sharding-Jdbc是一个Jar形式,在本地应用层重写Jdbc原生的方法,实现数据库分片形式。
MyCat属于服务器端数据库中间件,而Sharding-Jdbc是一个本地数据库中间件框架。

从设计理念上看确实有一定的相似性。主要流程都是SQL 解析 -> SQL 路由 -> SQL 改写 -> SQL 执行 -> 结果归并。但架构设计上是不同的。Mycat 是基于 Proxy,它复写了 MySQL 协议,将 Mycat Server 伪装成一个 MySQL 数据库,而 Sharding-JDBC 是基于 JDBC 的扩展,是以 jar 包的形式提供轻量级服务的。

这也就是SpringCloud Ribbon与Nginx区别。

shardingsphere(Sharding-Jdbc)_第1张图片

3.Sharding-Jdbc实现读写分离

  • 实现读写分离原理
    • 需要在配置文件配置读写分离jdbc连接全部交给Sharding-Jdbc
    • Sharding-Jdbc只是实现连接主或者从数据源,不会实现主从复制功能,需要自己配置数据库自带主从复制方式。
    • Sharding-Jdbc会自动判断sql语句类型(DML或者DQL),如果是DML语句的话,会获取主的jdbc连接配置进行发送请求,如果是DDL语句的话,获取从的jdbc连接发送请求。

shardingsphere(Sharding-Jdbc)_第2张图片

  • 查看MasterSlaveDataSource即可查看该类getDataSource方法获取当前数据源名称

DQL:数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块: SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>

DML:数据操纵语言DML主要有三种形式: 1) 插入:INSERT 2) 更新:UPDATE 3) 删除:DELETE

演示项目链接:https://github.com/chenruoyu0319/shardingsphere

你可能感兴趣的:(shardingsphere(Sharding-Jdbc))