tidb 跨机房如何做读写分离

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】: tidb 4.0
  • 【问题描述】:

我在官方文档和论坛上看了异地部署的方案,我们想一地两中心部署tidb,方案有 方案一:两个机房做各自的tidb 集群,然后用binglog 异步同步 方案二: tikv pd tidb 用lab 做标签 做一个完整tidb集群

1、对于两个方案,两个机房有专线,同城5公里,带宽一般多少合适,网络延迟多少ms保证网络稳定,集群健康。 2、对于两个方案如何做读写分离, 3、这两个方案,如果一个机房出现问题,故障如何切换;

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1赞
  1. 建议整体网络延迟在 2ms 以下,带宽具体得根据业务量来做评估,具体可以根据 业务 POC 测试来得到。
  2. 读写分离的话,如果是方案1 本来就是两套 TiDB 集群完全可以根据需求来区分开读集群与写集群,方案2 的话一套集群当前 3.0 的版本读写暂时都是 leader 提供的,4.0 有 follower read 的 feature 都是集群自动判断的。
  3. 方案1 是基于 Binlog 组件来做异步数据同步,在极端情况下有可能会有数据丢失的情况, 4.0 CDC 同步可以解决该问题。方案2 的话是基于 Raft 协议来实现的高可用。切换的话两套方案都只需要把访问的流量切换到没问题的机房的 TiDB 即可。