ShardingSphere:高效管理数据库集群的终极方案
高性能数据库集群架构模式-shardingSphere
定位:通过shardingSphere 作为数据访问层,来操纵数据库集群
前置介绍
阿里巴巴规定如果单表数据量大于五百万条/容量>2GB时,就建议进行分库分表
解决方案
读写分离
写操作路由到主机,读操作路由到从机
优点:避免数据库更新的行锁导致的查询性能降低
缺点:CAP --> 提升可用性(A)的时候必然会降低一致性(C)。
数据分片
垂直分片
垂直拆分:数据行不多,但占用空间大--> 进行数据冷热分离。
缺点:操作表的数量变多,复杂度增高
优点:提高读写性能
水平分片
水平分表:数据行非常多 --> 根据某些策略[时间段/id取模/业务字段]进行拆分。
水平分库:如果水平分表后,依然无法满足性能要求,那就需要将多个表分散到不同的服务器上。
常见数据库集群解决方案
Apache ShardingSphere
MyCat
ShardingSphere-JDBC(数据访问层)![]()
ShardingSphere-JDBC 定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。
ShardingSphere-Proxy(独立的一个应用程序)
hardingSphere-Proxy 定位为透明化的数据库代理端,通过实现数据库二进制协议,对异构语言提供支持。 目前提供 MySQL 和 PostgreSQL 协议,透明化数据库操作,对 DBA 更加友好。
