1. CockroachDB 集群规划与硬件选型指南
在分布式数据库领域,CockroachDB 凭借其强一致性和水平扩展能力脱颖而出。作为一款云原生分布式SQL数据库,它完美继承了Google Spanner的设计理念,同时保持了PostgreSQL兼容性。我们团队在生产环境部署CockroachDB集群时,首要考虑的是硬件资源的合理配置。
1.1 节点角色划分与资源配置
根据我们多年运维经验,生产环境中的CockroachDB节点通常分为三类:
-
主集群节点:承担核心数据存储和事务处理
- CPU:8-16核(避免使用共享核实例)
- 内存:32GB起步(每TB数据约需4GB内存)
- 存储:1-2TB NVMe SSD(建议RAID 10配置)
- 网络:1Gbps+专用网络(延迟<1ms)
-
辅助节点:处理只读查询和副本同步
- CPU:4-8核
- 内存:16GB
- 存储:500GB SSD
- 网络:1Gbps
-
监控/备份节点:运行监控系统和备份存储
- CPU:2-4核
- 内存:8-16GB
- 存储:200GB SSD(用于短期指标存储)
重要提示:避免使用突发性能实例(如AWS t系列),这类实例在持续高负载时会出现性能断崖式下降。我们曾在一个客户环境中因此导致集群雪崩。
1.2 网络拓扑设计建议
对于3节点基础集群,我们推荐以下部署模式:
code复制[ 可用区A ] - node1(主)
[ 可用区B ] - node2(主)
[ 可用区C ] - node3(仲裁)
这种部署能保证单个可用区故障时不丢失数据。随着集群规模扩大,可以采用5节点或9节点配置,遵循奇数节点原则以确保Raft共识。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. CentOS 8系统级优化实战
2.1 防火墙与端口配置
CockroachDB集群需要以下端口通信:
- 26257:节点间RPC通信
- 8080:Admin UI访问
建议配置方式:
bash复制# 永久开放端口
firewall-cmd --permanent --add-port=26257/tcp
firewall-cmd --permanent --add-port=8080/tcp
# 重载配置
firewall-cmd --reload
如果节点间需要ICMP检测,还需添加:
bash复制firewall-cmd --permanent --add-protocol=icmp
2.2 内核参数调优
创建专用配置文件:
bash复制cat > /etc/sysctl.d/99-cockroach.conf <<'EOF'
# 允许非特权进程绑定低端口
