验证RDS读写分离是否正确分发只读请求

目前RDS-Mysql支持开通读写分离,然后应用使用读写分离的地址提交请求的时候,就能够将符合条件的读请求分发到只读实例上执行,从而分担主实例上读请求的压力。

但是在使用过程中,并不是所有的读都会分发到只读实例实例上执行,比方说处于事务中的读。(详细请参考:https://help.aliyun.com/document_detail/96073.html?spm=a2c4g.11174283.6.628.32b94c22UhkIsT

image

在处理问题的过程中,经常会有用户反映,为什么我只读实例上的CPU压力特别低,并且业务中的一些读请求都没有在上面运行,针对这种情况,可能就是因为在应用中有开启事务,然后读请求就被发送到主实例上执行了。

对于这种情况的排查,我建议使用下面的方法进行操作:

  1. 首先在主实例还有只读实例上开启一下sql审计。
  2. 配置分离的权重:主实例为0,只读实例为100。
  3. 然后通过mysql命令行这种方式连接读写分离的地址,提交一个简单的读请求(没有包含在事务里面)。
  4. 最后在主实例和只读实例的sql审计日志中查看,看到底是在哪里执行的之前的select操作。

如果发现了这样的方式提交读请求还是到主实例上执行的话,那么请联系阿里云进行排查(发生的机率太小);一般如果是因为开启了事务造成的话,在审计日志中也是能够看到的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值