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