如果我使用obproxy指定了路由,svr_ip也记录了是备库IP,那如果是insert语句,是否会偷偷请求回主库运行
11 个赞
不会"偷偷改路由",但 insert 确实在主库执行。OBProxy 指定到备库 IP,只对弱一致性读请求 生效,备库直接返回。遇到 insert/update/delete 等写操作,备库 OBServer 没有该分区 leader 权限,会按分区把请求**转发到主副本(leader)**执行,结果再返回。这是 OBServer 层的 leader 路由,对客户端透明,并非 ODP 偷偷改道。
8 个赞
我配置的是强制路由也会这样嘛
ALTER PROXYCONFIG SET target_db_server = ‘192.168.xx.x:3306’;
6 个赞
是的,target_db_server就是强制绑定 OBProxy 访问指定 OBServer 节点。OBProxy 不会绕过这个 IP,请求先打到该备库。写请求依旧受内核约束,备库生成 remote 计划交给 Leader 执行,仅多一次中转;该节点故障直接报错,不会自动漂移。
9 个赞
若 192.168.xx.x:3306 是 备库 IP:
- INSERT 不会偷偷回主库执行
- 会发到该备库,通常报只读错误
- 要在该 VIP 上正常写入,应把
target_db_server设成 主库 IP,或清空该配置恢复默认 Leader 路由:
ALTER PROXYCONFIG SET target_db_server = ‘’;
8 个赞
没有配置什么主库备库了
6 个赞
如果是follower副本,会转到leader副本上执行。
8 个赞
内容详实,观点独到,值得一读。
6 个赞
非常有深度的一篇好文,点赞支持。
6 个赞
学习了。
5 个赞
不会,会转到leader副本上执行的。
2 个赞
了解了解
3 个赞
学到了
2 个赞
厉害了
1 个赞
期待更多分享
1 个赞
逻辑清晰,论据充分,非常有说服力。
1 个赞
赞一个
赞一个1
赞一个2
学到了!