ZBLOG

sharding-proxy实现读写分离,使用DIST SQL查询出当前读库IP

通过 DIST SQL(Distributed SQL) 在 ShardingSphere-Proxy 中查询读写分离的读库 IP 信息,可以使用以下命令:


1. 查询读写分离资源状态

-- 查看所有读写分离数据源的状态(包含读库连接信息)
SHOW READWRITE_SPLITTING READ RESOURCES [FROM schema_name];

示例输出:

+----------+-----------+----------------+------------+-------------+
| name     | type      | host           | port       | status      |
+----------+-----------+----------------+------------+-------------+
| replica0 | MySQL     | 192.168.1.101  | 3306       | enabled     |
| replica1 | MySQL     | 192.168.1.102  | 3306       | enabled     |
+----------+-----------+----------------+------------+-------------+

2. 查询具体读写分离规则配置

-- 查看读写分离规则的详细配置(包含数据源URL)
SHOW READWRITE_SPLITTING RULES [FROM schema_name];

示例输出:

+------------------+---------------------+---------------------------------------+----------------------+
| name             | write_data_source   | read_data_sources                     | load_balancer_type   |
+------------------+---------------------+---------------------------------------+----------------------+
| readwrite_ds     | primary-ds          | replica0,replica1                     | ROUND_ROBIN          |
+------------------+---------------------+---------------------------------------+----------------------+

3. 结合系统表查询(如果需要更多细节)

-- 查看数据源的具体连接信息(部分版本支持)
SELECT * FROM information_schema.resources WHERE schema = 'your_schema';

4. 使用Hint强制路由到特定读库后查询

-- 强制路由到某个读库
SET readwrite_splitting hint source = 'replica0';

-- 然后查询当前连接信息(MySQL示例)
SELECT @@hostname as host_ip, USER() as connection_info;

⚠️注意事项:

  1. 版本要求:需要 ShardingSphere-Proxy 5.0.0+ 版本才支持完整的 DIST SQL 功能
  2. 权限需求:用户需要有相应的权限才能查询系统信息
  3. 输出格式:不同版本的输出格式可能略有差异

推荐使用方式:

-- 最直接的方式:查看读库资源状态
SHOW READWRITE_SPLITTING READ RESOURCES;

-- 或者查看所有资源详情
SELECT * FROM information_schema.resources;

这样就能通过 DIST SQL 直接获取到读库的 IP地址、端口、状态等信息。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?