希望支持动态修改 proxy-protocol.networks 配置

需求反馈
希望支持动态修改 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设计,模型或者图标都会更有帮助。

主要就是这个问题对吧。你可以考虑一下tiproxy。

https://docs.pingcap.com/zh/tidb/stable/tiproxy-overview/#使用场景

TiProxy 适用于以下场景:

  • 连接保持:当 TiDB 缩容、滚动升级、滚动重启操作时,客户端连接会断开,导致报错。如果客户端没有幂等的错误重试机制,则需要人工手动检查错误并修复,这大大增加了人力成本。TiProxy 能保持客户端连接,因此可以避免客户端报错。

我们目前这种方式已经用了很久了,在tiproxy出来之前就在使用了,如果要使用tiproxy调整成本比较大,而且又需要维护一个组件,同时参考tiproxy的一些限制,可行性不太大

除了会重启导致业务断连,还有就是操作起来比较繁琐,如果可以动态更新,就可以专门去检查如果Haproxy网段有更新就自动加进去,无需太多繁琐的操作了,对业务也不影响。

把 proxy-protocol.fallbackable 设为 true,networks 设为 * 是否可行?这样不管客户端有没有用 proxy protocol 都能连接。

但是我看文档中,如果设置为*会导致内部的组件连接有问题,比如tidashboard

那是在 fallbackable 设为 false 的时候才会

哦哦 看错了 感谢指正 :joy: , 那应该可以 我试试