sgjr
1
需求反馈
希望支持动态修改 proxy-protocol.networks 配置
【需求涉及的问题场景】
目前我们的使用方式是在所有tidb-server前加一层HAProxy作为统一入口,HAProxy 开启proxy protocal , tidb-server的proxy-protocol.networks 配置为 HAProxy 对应的网段。
但是,由于某些原因比如机房搬迁的情况下,需要迁移 HAProxy, 迁移后 HAProxy 使用新的网段,新的网段不在 tidb-server 的 proxy-protocol.networks 中,会导致无法通过新的 HAProxy 进行连接,如果需要修改 proxy-protocol.networks 配置,则需要重启 tidb-server,会造成业务断连。
【期望的需求行为】
期望可以动态配置 proxy-protocol.networks 值,当新增HAProxy网段时可以提前添加网段,而无需重启tidb-server
set global proxy-protocol.networks = 'xxxx';
【需求可替代方案】
【背景信息】
如哪些用户将从中获益,以及一些使用场景,任何API设计,模型或者图标都会更有帮助。
有猫万事足
2
主要就是这个问题对吧。你可以考虑一下tiproxy。
https://docs.pingcap.com/zh/tidb/stable/tiproxy-overview/#使用场景
TiProxy 适用于以下场景:
- 连接保持:当 TiDB 缩容、滚动升级、滚动重启操作时,客户端连接会断开,导致报错。如果客户端没有幂等的错误重试机制,则需要人工手动检查错误并修复,这大大增加了人力成本。TiProxy 能保持客户端连接,因此可以避免客户端报错。
sgjr
3
我们目前这种方式已经用了很久了,在tiproxy出来之前就在使用了,如果要使用tiproxy调整成本比较大,而且又需要维护一个组件,同时参考tiproxy的一些限制,可行性不太大
sgjr
4
除了会重启导致业务断连,还有就是操作起来比较繁琐,如果可以动态更新,就可以专门去检查如果Haproxy网段有更新就自动加进去,无需太多繁琐的操作了,对业务也不影响。
把 proxy-protocol.fallbackable 设为 true,networks 设为 * 是否可行?这样不管客户端有没有用 proxy protocol 都能连接。
sgjr
6
但是我看文档中,如果设置为*
会导致内部的组件连接有问题,比如tidashboard
那是在 fallbackable 设为 false 的时候才会