问一个关于obproxy问题

如果我使用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

学到了!