分类

链接

2025 年 10 月
 12345
6789101112
13141516171819
20212223242526
2728293031  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > JAVA > 正文
共享办公室出租
Sharding-JDBC‌
JAVA 暂无评论 阅读(14)

Sharding-JDB

Sharding-JDBC介绍

Sharding-JDBC是当当网研发的开源分布式数据库中间件,定位为轻量级Java框架,在Java的JDBC层提供的额外服务。 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架,从3.0开始Sharding-JDBC被包含在Sharding-Sphere中。

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

Sharding-JDBC的作用

Sharding-JDBC的核心功能为数据分片读写分离,通过Sharding-JDBC,应用可以透明的使用Jdbc访问已经分库分表、读写分离的多个数据源,而不用关心数据源的数量以及数据如何分布。

  • 适用于任何基于JDBC的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。
  • 支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。
  • 支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer,PostgreSQL以及任何遵循SQL92标准的数据库。

官网地址:概览 :: ShardingSphere (apache.org)

 

 

shardingjdbc和mycat比怎么样?

截至 ‌2025年10月‌,‌ShardingJDBC‌(ShardingSphere-JDBC)和 ‌MyCat‌ 仍然是主流的分布式数据库中间件,但它们的设计理念、架构和适用场景有所不同。以下是它们的对比分析:


1. 架构与定位

特性 ShardingJDBC MyCat
定位 轻量级 ‌JDBC 驱动‌(无代理) 数据库代理‌(类似 MySQL Proxy)
部署方式 嵌入应用(Java 代码/Spring Boot) 独立服务(类似 MySQL Server)
性能 更高(无额外网络开销) 稍低(需代理层转发)
适用场景 微服务、云原生、Java 应用 传统数据库代理、兼容 MySQL 协议

结论‌:

  • ShardingJDBC‌ 更适合 ‌云原生、Java 应用‌,直接集成在代码层,减少网络延迟。
  • MyCat‌ 更适合 ‌传统架构‌,适合非 Java 语言访问或需要 MySQL 协议兼容的场景。

2. 功能对比

功能 ShardingJDBC MyCat
分库分表 ✅(支持多种策略) ✅(较成熟)
读写分离
分布式事务 ✅(支持 XA、Seata) ✅(XA 支持较弱)
SQL 兼容性 ️(部分复杂 SQL 需适配) ✅(兼容 MySQL 协议)
多数据库支持 ✅(MySQL、PostgreSQL、Oracle 等) ✅(主要 MySQL)
动态扩缩容 ✅(ShardingSphere-Proxy 支持) ⚠️(需手动调整)

结论‌:

  • ShardingJDBC‌ 在 ‌分布式事务、多数据库支持‌ 方面更强。
  • MyCat‌ 在 ‌SQL 兼容性‌ 上更友好,适合直接替换 MySQL。

3. 生态与社区

方面 ShardingJDBC MyCat
维护情况 ✅(Apache 顶级项目,活跃) ⚠️(社区维护,更新较慢)
文档与教程 ✅(官方文档完善) ️(文档较旧)
云原生支持 ✅(K8s、Service Mesh) ❌(传统架构为主)

结论‌:

  • ShardingJDBC‌ 生态更活跃,适合 ‌云原生、微服务‌ 架构。
  • MyCat‌ 适合 ‌传统企业级应用‌,但社区发展较慢。

4. 适用场景推荐

选择 ShardingJDBC 如果:

✔ 你的应用是 ‌Java/Spring Boot‌ 架构
✔ 需要 ‌高性能、低延迟‌ 的分库分表
✔ 需要 ‌分布式事务(XA/Seata)
✔ 计划向 ‌云原生(K8s)‌ 迁移

选择 MyCat 如果:

✔ 你需要 ‌MySQL 协议兼容‌(非 Java 应用访问)
✔ 你的团队熟悉 ‌传统数据库代理‌ 模式
✔ 不需要复杂的分布式事务


5. 2025 年趋势

  • ShardingSphere(含 ShardingJDBC)‌ 已成为主流,尤其在 ‌云原生、微服务‌ 场景。
  • MyCat‌ 仍然可用,但 ‌新项目更推荐 ShardingSphere‌。

如果你的项目是 ‌新架构‌,建议优先考虑 ‌ShardingJDBC‌;如果是 ‌旧系统改造‌,可以评估 MyCat 是否满足需求。

 

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:Sharding-JDBC‌ | Bruce's Blog

发表评论

留言无头像?