ZBLOG

sharding-proxy public scheme是什么

Sharding-Proxy 的 public scheme 是 Apache ShardingSphere 生态中 Sharding-Proxy 的一个配置概念,主要用于定义逻辑数据库(逻辑 Schema)与后端物理数据源的映射关系。以下是详细说明:


1. 核心作用

  • 逻辑数据库暴露public scheme 是客户端连接时看到的逻辑数据库名称(如 sharding_db),它本身不存储数据,而是通过规则将请求路由到后端的真实物理数据库。
  • 解耦与透明化:对应用层隐藏实际分库分表的复杂度,开发者只需操作逻辑表名,Sharding-Proxy 自动处理底层分片、路由、聚合等逻辑。

2. 配置示例

在 Sharding-Proxy 的配置文件(如 config-sharding.yaml)中,典型结构如下:

  1. schemaName: sharding_db # 公共逻辑Schema名称(public scheme)
  2. dataSources:
  3. ds_0:
  4. url: jdbc:mysql://db1:3306/real_db_0
  5. username: root
  6. password: xxx
  7. ds_1:
  8. url: jdbc:mysql://db2:3306/real_db_1
  9. username: root
  10. password: xxx
  11. rules:
  12. - !SHARDING
  13. tables:
  14. t_order:
  15. actualDataNodes: ds_${0..1}.t_order_${0..15}
  16. # 分片规则:数据分散在16个表(t_order_0到t_order_15)和2个库中

3. Public Scheme 的关键特性

特性 说明
多租户支持 可配置多个 schemaName,每个对应独立的物理数据源集合,实现租户隔离。
动态绑定 支持运行时动态加载/卸载数据源,无需重启代理。
协议兼容性 兼容 MySQL/PostgreSQL 等协议,应用无需修改驱动即可连接。

4. vs Sharding-JDBC

  • Sharding-JDBC:嵌入应用的轻量级组件,无 public scheme 概念,直接在代码或配置中绑定物理库表。
  • Sharding-Proxy:独立服务层,通过 public scheme 提供统一的入口,更适合运维集中管理。

5. FAQ

Q:能否一个 public scheme 映射到异构数据库(如 MySQL + PostgreSQL)?

A:可以!ShardingSphere支持跨异构数据库的联邦查询(需确保SQL语法兼容)。

Q:如何实现读写分离?

A:在 dataSources中配置主从库,并通过 !READWRITE_SPLITTING规则指定负载均衡策略。

如果需要具体配置案例或深入某个场景的实践细节,可以进一步探讨!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=23609

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?