TIDB集群规划问题

【 TiDB 使用环境】/测试/ Poc
【 TiDB 版本】V7.5.0
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】 最近准备上一个新的项目,目前选了TIDB作为数据库,想请教一下TIDB集群我该如何规划
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面

问题一:
我现在有10太服务器,准备做2 TIDB、3 PD、5 KV 的集群,监控组件规划到业务WEB服务器上,不占用这10台服务器资源,没弄明白,TIDB的高可用原理,我看官网给的计算公式是:

  • 若 n 为奇数,该 Raft Group 可以容忍 (n-1)/2 个副本同时发生故障
  • 若 n 为偶数,该 Raft Group 可以容忍 n/2 -1 个副本同时发生故障

请问大神们这个计算公式是针对PD组件的还是KV组件的,如果不是PD组件的计算方式那么KV该如何规划,部署5台KV节点是否能容忍2台KV故障呢。

问题二:
我想问一下,想要让数据库集群的读写速度更快应该扩容哪个节点呢?

问题1,计算公式是tikv的,你的理解是对的。必须5tikv 5副本才能保证容忍同时坏2台tikv。

问题2,读写更快,这个需要具体问题具体分析。
对tidb有初步了解的话,建议从规避读写热点入手。
这个能解决好,能减少很多麻烦。
https://docs.pingcap.com/zh/tidb/stable/troubleshoot-hot-spot-issues#tidb-热点问题处理

2 个赞

谢谢 您的回复,我还有个疑问,我2 TIDB节点如果只做keepalived
的话在进行select的时候是不是只有有浮动IP的那台TIDB节点在工作,另外一台并没有工作

keepalived是这样的,要实现负载均衡要使用haproxy。

如果一定要用keepalived,最好是套在haproxy前面。这样必然有一套haproxy是可用的。然后只要有一个haproxy是可用的,后面2台tidb都能负载均衡到。

TiKV节点数要大于副本数,TiDB前面最好用负载均衡: TiProxy

追求读写性能的话tidbit对硬件要求还是很高的, 内存、CPU、 SSD 盘、万兆网卡都有要求
https://docs.pingcap.com/zh/tidb/stable/hardware-and-software-requirements

tidb层要做负载均衡

:yum:即使加了负载,一个select语句也只在一个tidb节点工作,另外一个tidb节点不工作。

1 个赞

TiDB的高可用原理是基于分布式系统中的Raft一致性算法来实现的。该算法可以保证在多个副本之间数据的一致性和系统的可用性。官网给出的计算公式是通用的,适用于PD组件和KV(TiKV)组件的Raft Group副本数规划。

对于你的KV组件(即TiKV节点)规划,如果你部署5台KV节点,按照公式:

若 n 为奇数,该 Raft Group 可以容忍 (n-1)/2 个副本同时发生故障。

这里 n = 5(奇数),所以可以容忍 (5-1)/2 = 2 个副本同时发生故障。因此,部署5台KV节点,你确实可以容忍2台KV节点发生故障,同时还能保持集群的高可用性和数据一致性。

看你服务器什么配置,tidb可以和PD放到一起。

tidb和pd可以放一起,pd起3个就行,tikv数量要大于等于3
一般来说cpu负载最高的是tidb节点,你需要起码5个tidb,另外负载均衡怎么做考虑下

1 个赞

所以n是tikv实例数,还是副本数?tikv和副本是可以不一样的