数据库123hjg

分库分表第一篇之基础概念

2020-05-27  本文已影响0人  小螺丝钉cici

一.什么是 Sharding-jdbc
二.Sharding-Proxy
三.常用Client模式和 Proxy模式
四.功能列表
五.分库分表的基础概念
六.Sharding-Sphere的发展史

Sharding-Sphere

Sharding- Sphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 Sharding-JDBC、 Sharding- Proxy和 Sharding- Sidecar(计划中)这3款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。

一.Sharding-Jdbc

Sharding-jdbc是一个开源的分布式数据库中间件,它无需额外部署和依赖,旧代码迁移成本几乎为零。
Sharding-JDBC作为面向开发的微服务云原生基础类库,完整地实现了分库分表、读写分离和分布式主键功能,并初步实现柔性事务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容.JDBC和各种RM框架。

(1)适用于任何基于Java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBCTemplate或直接使用Jdbc。
(2)基于任何第三方的数据库连接池,如: DBCP C3PO, Bonecp Druio., Hikaricp等。
(3)支持任意实现JDBC规范的数据库。目前支持 MySQL, Oracle, Sqlserver和Postgresql

image.png
二.Sharding- Proxy

Sharding- Proxy定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。
目前先提供 MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如: MySQL Command Client,MySQL Workbench等)操作数据,对DBA更加友好

三.常用Client模式和 Proxy模式

Client模式属于客户端直连方案。
此方案的优势在于轻便、兼容性、性能以及对DA影响小
Proxy模式属于中间层方案。
在应用程序和MySQL之间搭建一层 Proxy。中间层介于应用程序与数据库间,需要做一次转发,而基于.JDBC协议并无额外转发,直接由应用程序连接数据库,性能上有些许优势。这里并非说明中间层一定不如客户端直连,除了性能,需要考虑的因素还有很多,中间层更便于实现监控、数据迁移、连接管理等功能。

四.功能列表
image.png

五.分库分表

5.1分库分表产生的背景
image.png

为什么需要分库分表:
因为单一数据节点;性能瓶颈,不具备高可用性,运维成本高

5.2数据分片
image.png image.png

比如:目前公司的很多表,按照tentendId % 3 求余,余数=1,分配到1库,余数=2分配到2库

5.3 逻辑表 / 真实表 / 数据节点 / 绑定表
六.Sharding-Sphere的发展史
image.png
4.0.0-RC1:新功能

(1)支持XA强一致事务。
(2)支持数据脱敏。
(3)支持使用PostgreSQL协议访问Sharding-Proxy。
(4)支持DISTINCT语句。
(5)支持广播表。
(6)路由至单一数据节点的SQL 100%全兼容(仅MySQL)。

4.0.0-RC2: API调整和新功能
上一篇下一篇

猜你喜欢

热点阅读