ZBLOG

databaseName: emm_manager dataSources: write_ds: url: jdbc:mysql://10.19.83.26:9906/emm_manager?useOldAliasMetadataBehavior=true&useSSL=false&serverTimezone=GMT%2B8&connectTimeout=30000&allowMultiQueries=true username: uniemm passwo...

在您提供的 ShardingSphere-Proxy 配置中,数据库加载源的指定是通过 dataSources 部分和 rules 部分的 !READWRITE_SPLITTING 规则共同完成的。以下是关键解析:


1. 数据源定义(dataSources

配置中明确定义了两个数据源:

  • 写数据源 (write_ds):指向主库 10.19.83.26:9906
  • 读数据源 (read_ds_0):指向从库 10.19.83.27:9906

每个数据源均包含完整的连接信息(URL、用户名、密码、连接池参数等)。


2. 读写分离规则(!READWRITE_SPLITTING

通过标签 !READWRITE_SPLITTING 声明读写分离规则,关键配置如下:

  1. rules:
  2. - !READWRITE_SPLITTING
  3. dataSourceGroups:
  4. readwrite_ds: # 逻辑数据源组名称
  5. writeDataSourceName: write_ds # 绑定写操作的数据源
  6. readDataSourceNames:
  7. - read_ds_0 # 绑定读操作的数据源列表
  8. loadBalancerName: random # 读负载均衡策略
  9. loadBalancers:
  10. random:
  11. type: RANDOM # 随机选择读库

3. 数据库加载源的生效逻辑

  1. 写操作:所有 SQL 写入请求会自动路由到 write_ds(主库)。
  2. 读操作:读请求会通过 RANDOM 策略从 read_ds_0(从库)中选择一个执行。
  3. 逻辑数据库名:顶层配置的 databaseName: emm_manager 是客户端连接时使用的逻辑库名,ShardingSphere-Proxy 会将其映射到实际物理库。

⚠️注意事项:

  1. 依赖主从同步:需确保 MySQL 主从复制已正确配置,ShardingSphere 不负责数据同步。
  2. 负载均衡扩展:如需更多读库,可在 readDataSourceNames 中添加多个数据源。
  3. 其他规则:若需分片或加密等功能,需在 rules 下追加其他规则(如 !SHARDING)。

如果需要验证配置是否生效,可通过 Proxy 执行 SQL 并观察日志中的实际路由结果。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?