请教一个应用场景

大家好,我想请教一个TiKV的应用场景,不知道有没有合适的解决方案。

该场景有23个数据中心,数据中心在不同的国家和地区。其中有三个是用于管理的数据中心(Control Plane),其他20个是用于数据处理的数据中心(Data Plane)。 在管理的数据中心中有写和读两种情况,在数据处理的数据中心中只有读的情况。三个管理的数据中心之间,不要求数据的一致性。从管理的数据中心到数据处理的数据中心之间只有单纯的复制。

想请教一下这种情况TiKV能处理不同数据中心之间的数据复制吗?

多数据中心支持:
TiKV支持跨数据中心的部署,可以通过配置多个Region和节点来覆盖不同的地理位置。
可以通过TiKV的Region分区策略将数据分布到不同的数据中心,以提高数据访问的本地性和减少跨数据中心的延迟。
数据复制:
TiKV使用Raft协议进行数据复制,可以确保数据在不同节点间的同步和一致性。
在您的场景中,可以将管理的数据中心作为数据的主副本节点,而数据处理的数据中心作为从副本节点,实现数据的单向复制。
读写分离:
管理的数据中心负责写操作,而数据处理的数据中心仅负责读操作,这符合TiKV读写分离的架构设计。
通过合理配置TiKV的负载均衡和路由策略,可以优化读写操作的性能和效率。

谢谢您的回复,请问一下这个从副本节点会参与Raft的各种操作和投票吗,还有如果出现了数据中心之间的网络隔离,这个从副本节点还可以响应读请求吗?

数据中心之间会有网络隔离的情况,还是每个数据中心单独建立tidb集群吧。然后用ticdc在tidb集群之间相互复制。

ticdc甚至支持双向复制,不过限制会比较多。你这个场景里面,可能也就是3个管理的数据中心,可能会用到双向复制,其他的单向复制都可以解决。

https://docs.pingcap.com/zh/tidb/stable/ticdc-bidirectional-replication#ticdc-双向复制

如果跨区使用一套集群对网络的要求非常高,还跨国那基本上用不了
建议各个数据中心使用单独的集群,通过cdc做数据同步

1 个赞

同一套集群跨机房或者跨可用区需要保证网络延迟在20ms以内,通常需要专线才行,这种网络延迟对于跨国来说几乎不可能。所以,可以考虑使用异地灾备集群的方式,比如主从集群。

不求性能都可以
求性能多副本就可以

你这个条件一列,那使用一个集群,通过多数据副本的方式已经不可能了,延迟太高。只能使用多个集群,通过cdc同步了。

我感觉你这要求 其实就是区块链技术
btc的确认要30分钟
快的trx 其实是2中心节点 1秒就能确认交易

谢谢大家的回复!

这个情况可能还要简单一些,管理的数据中心之间不需要复制,只有管理的数据中心到数据处理的数据中心之间需要复制。谢谢ticdc的建议,我去查找一下资料。

是的,可能不同的数据中心还是需要分开独立运行比较稳定。这个场景对读稳定的要求很高,对于同步的延迟要求没有那么高。

区块链是备选方案之一,谢谢您的建议。

你想速度快就要节点少

第三方数据库同步工具可以考虑