请问大家在生产中是如何混部组件的?

【 TiDB 使用环境】生产环境
【 TiDB 版本】V8.5.5
【遇到的问题:问题现象及影响】手里有9台服务器用于构建TiDB生产集群,目标是在保障性能、稳定的前提下实现资源高效利用。具体约束条件如下:
1、TiKV节点严格采用物理机独立部署,禁止与其他组件混部;
2、业务流量仅路由至HA主节点,非故障是HA备节点不承载业务请求;
3、计算层设置了1个运维节点(仅执行数据导入、集群运维等操作,不处理业务请求)。
现就PD备节点、TiCDC、监控等组件的混合部署策略,想到三种部署方案,请问大家在生产中会如何选择,有没有更好的方案?

方案一:PD备/HA备/监控/TiCDC跨节点混部
节点1:PD主节点
节点2:PD备节点 + HA主节点
节点3:PD备节点 + HA备节点 + 监控 + TiCDC
节点4:单业务计算节点 + 单运维计算节点
节点5-6:双业务计算节点
节点7-9:四TiKV实例(存储层专用节点)

方案二:PD备/HA备/监控同节点合并,TiCDC与运维节点共存
节点1:PD主节点
节点2:PD备节点 + HA主节点
节点3:PD备节点 + HA备节点 + 监控
节点4:单业务计算节点 + 单运维计算节点 + TiCDC
节点5-6:双业务计算节点
节点7-9:四TiKV实例(存储层专用节点)

方案三:监控/TiCDC与运维节点深度整合
节点1:PD主节点
节点2:PD备节点 + HA主节点
节点3:PD备节点 + HA备节点 + 单业务计算节点
节点4:单运维计算节点 + 监控 + TiCDC
节点5-6:双业务计算节点
节点7-9:四TiKV实例(存储层专用节点)

1 个赞

PD 是控制面核心

需要保证:

至少 3 个节点
不同物理机
不与高负载组件强耦合
尽量避免与 TiCDC/监控重叠

2 个赞

在方案二基础上微调。

推荐结构:


节点1

PD


节点2

PD + HA主


节点3

PD + HA备 + 监控


节点4

运维 + TiCDC


节点5

业务TiDB


节点6

业务TiDB


节点7

TiKV


节点8

TiKV


节点9

TiKV

优化点

TiKV 保持3节点

保证:

raft quorum
稳定


CDC独立

保证:

同步稳定


PD不和业务混部

保证:

调度稳定


运维节点承担任务型组件

合理。

3 个赞

方案二吧

方案2稳妥点

建议监控节点单独部署,之前8C16G虚拟机部署多次出现内存耗尽重启,Prometheus压力会比较大,一个大promQL吃资源比较多

9台服务器规格一样都是物理机,64c、512g、数据盘是4块nvme。

其实ticdc有条件可以单独部署

混合部署的话排查故障也会相互影响的

选2吧,问题少

昨天又想到了一种方案四,可以实现创建6个计算实例用于跑业务,大家给看看会有什么风险?

方案四:PD备/HA备/监控/TiCDC/运维节点 混部
节点1:PD主节点
节点2:HA主节点 + PD备节点
节点3:单运维计算节点 + TiCDC + PD备节点 + HA备节点 + 监控
节点4-6:双业务计算节点
节点7-9:四TiKV实例(存储层专用节点)

节点3上面的组建太多了一点,ticdc和pd不要放一起吧

cdc同步的表就几张,变化量也不大。

我觉得都可以啊,只要保证56789都是单独的节点,其他没啥大区别,都不太消耗资源的

如果同步的压力不大的话感觉没啥问题

推荐方案一, 方案一在“控制节点稳定性”和“辅助组件隔离”之间取得了最好的平衡