• 首页
  • 邻居
  • 关于
  • 归档
  • 搜索
  • 夜间模式
    ©2020-2026  我的学习笔记 Theme by OneBlog

    我的学习笔记博客

    搜索
    标签
    # 随笔 # Java # 教程 # openwrt # Mysql # SQL # 爬虫 # post # Js调优 # MAVEN
  • 首页>
  • 随笔>
  • 正文
  • 🚀 ShardingSphere-Proxy vs ShardingSphere-JDBC 对比与选型指南

    2026年03月23日 5 阅读 0 评论 2514 字

    🚀 ShardingSphere-Proxy vs ShardingSphere-JDBC 对比与选型指南

    📌 一、背景

    在使用 ShardingSphere 做分库分表、读写分离、分布式事务时,官方提供了两种接入方式:

    • ShardingSphere-JDBC(嵌入式)
    • ShardingSphere-Proxy(代理式)

    很多人在选型时会困惑:到底用哪个?

    本文从架构、性能、运维、适用场景等维度,做一份工程实战级对比总结。


    🧠 二、核心区别(一句话)

    **ShardingSphere-JDBC 是嵌入应用内部的数据库增强框架;
    ShardingSphere-Proxy 是独立部署的数据库代理服务。**

    🏗️ 三、架构对比

    1️⃣ ShardingSphere-JDBC 架构

    Spring Boot / Spring Cloud
            ↓
    ShardingSphere-JDBC(Jar)
            ↓
    MySQL / PostgreSQL

    👉 特点:

    • 嵌入应用
    • 无额外网络跳转
    • 每个服务独立配置

    2️⃣ ShardingSphere-Proxy 架构

    Spring Cloud / 任意语言
            ↓
    ShardingSphere-Proxy(独立服务)
            ↓
    MySQL / PostgreSQL

    👉 特点:

    • 独立部署
    • 所有应用统一入口
    • 支持多语言

    ⚔️ 四、核心能力对比

    对比维度ShardingSphere-JDBCShardingSphere-Proxy
    接入方式Jar依赖数据库代理
    部署方式嵌入应用独立服务
    支持语言仅 Java多语言(MySQL协议)
    性能⭐⭐⭐⭐⭐(无网络损耗)⭐⭐⭐⭐(多一跳)
    运维复杂度⭐⭐⭐⭐⭐⭐
    规则管理分散(每个服务一份)集中统一
    扩展能力灵活更标准化
    连接成本高(每服务连接数据库)低(统一连接池)
    DistSQL 支持❌✅
    治理能力弱强

    🔍 五、关键差异解析


    1️⃣ 性能

    • JDBC:性能更高

      • 无网络代理
      • SQL直接执行
    • Proxy:略有损耗

      • 多一层转发
      • 但可接受

    👉 结论:

    性能优先 → JDBC

    2️⃣ 多语言支持

    • JDBC:只能 Java
    • Proxy:支持所有语言(MySQL协议)

    👉 结论:

    多语言系统 → Proxy

    3️⃣ 运维与治理

    • JDBC:

      • 每个服务配置一套规则
      • 修改需要发版
    • Proxy:

      • 统一入口
      • 可集中管理

    👉 结论:

    企业级治理 → Proxy

    4️⃣ 连接管理

    • JDBC:

      • 每个服务连接数据库
      • 连接数多
    • Proxy:

      • 所有连接集中
      • 更省资源

    5️⃣ DistSQL(重要)

    👉 Proxy 独有能力:

    CREATE SHARDING TABLE RULE ...
    SHOW SHARDING TABLE RULES;
    • 动态修改规则
    • 在线治理

    👉 JDBC 不支持


    🧪 六、使用方式对比


    JDBC 使用方式

    spring:
      shardingsphere:
        rules:
          sharding:
            tables:
              t_order:
                actual-data-nodes: ds_${0..1}.t_order_${0..1}

    Proxy 使用方式

    spring:
      datasource:
        url: jdbc:mysql://127.0.0.1:330
    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    首页邻居关于归档
    Copyright©2020-2026  All Rights Reserved.  Load:0.018 s
    京ICP备18019712号
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。