一、基本介绍

Sharding-Proxy 是 Apache ShardingSphere 生态中的核心产品之一,采用透明化的数据库代理架构。

核心特点

  1. 协议兼容性:支持 MySQL/PostgreSQL 等主流数据库协议
  2. 透明代理:伪装成真实数据库实例
  3. 独立部署:作为独立的数据库代理服务
  4. 功能丰富:提供读写分离、分布式事务、数据加密等企业级特性

二、核心特性

1. 协议兼容性

  • 支持 MySQL 5.1/5.5/5.6/5.7/8.0 版本
  • 完全兼容 MySQL 的二进制协议和文本协议

2. 客户端支持

  • 命令行工具:mysql client
  • 图形化工具:MySQL Workbench、Navicat、DBeaver
  • 编程语言驱动:JDBC、Python MySQL Connector、PHP PDO 等

3. 透明化设计

  • SQL 解析、路由、执行、结果合并等过程对应用完全透明
  • 支持所有 MySQL 语法

三、典型应用场景

  1. 数据库分片管理:对已有 MySQL 集群进行水平分片
  2. 多租户系统:通过逻辑库/逻辑表实现租户隔离
  3. 数据库中间件升级:替代传统的应用层分片方案
  4. 异构语言支持:为 PHP、Python、Go 等非 Java 语言提供分片能力

四、优势对比

特性Sharding-Proxy传统中间件应用层分片
协议透明性
多语言支持
零代码入侵
运维复杂度

五、使用指南

1. 配置文件修改

示例配置(server.yaml)

authentication:
  users:
    root:
      password: root
props:
  max.connections.size.per.query: 5
  proxy.transaction.type: LOCAL
  proxy.hint.enable: true

2. 启动服务

  • Linux系统:bin/start.sh
  • Windows系统:bin\start.bat
  • 默认端口:3307

3. 客户端连接

mysql -h 127.0.0.1 -P 3307 -u root -p

六、注意事项

  1. Hint 功能:默认不启用,需修改 conf/server.yaml
  2. 端口配置:默认端口 3307,可通过启动参数修改
  3. 多逻辑数据源:配置文件必须以 “config-” 开头命名