Sharding-Proxy 平滑切换读写流量到主库(禁用读写分离)
要在 Sharding-Proxy 中平滑地将所有读写流量切换到主库而不使用读写分离,可以按照以下步骤操作:
方法一:修改配置文件
找到 server.yaml 或 config-sharding.yaml 文件
- 通常位于 conf/ 目录下
修改或删除读写分离配置 “`yaml rules:
- !READWRITE_SPLITTING dataSources: # 注释掉或删除从库配置,只保留主库 pr_ds: writeDataSourceName: master_ds # readDataSourceNames: # - slave_ds_0 # - slave_ds_1
”`
重启 Sharding-Proxy
./bin/stop.sh && ./bin/start.sh
方法二:动态更新配置(无需重启)
如果使用的是支持动态配置的版本:
使用 DistSQL 动态更新规则
ALTER READWRITE_SPLITTING RULE pr_ds ( WRITE_RESOURCE=master_ds, READ_RESOURCES() );
验证规则已生效
SHOW READWRITE_SPLITTING RULES;
注意事项
平滑切换建议:
- 在低峰期执行此操作
- 确保应用有重试机制处理短暂的连接中断
监控主库负载: 切换后所有流量将集中到主库,需监控主库性能指标
应用层调整: 确保应用没有硬编码的读写分离逻辑
回滚方案: 如果需要恢复读写分离,只需重新添加从库配置并更新规则
这种切换方式会将所有读请求也路由到主库,完全禁用读写分离功能。
内容由零声教学AI助手提供,问题来源于学员提问