1. ClickHouse生产环境部署架构设计
ClickHouse作为一款开源的列式数据库管理系统,其生产环境部署需要特别关注高可用性和扩展性。根据我们团队在多个千万级日活项目中的实践经验,推荐采用分片+复制的分布式架构模式。
1.1 集群拓扑结构规划
典型的ClickHouse生产集群由3个分片组成,每个分片配置2个副本,形成6节点的基础架构。这种配置能够在保证数据安全性的同时,提供足够的查询吞吐能力。在实际部署中我们发现:
- 奇数分片数量有利于ZooKeeper协调选举
- 每个分片至少2个副本才能实现故障自动转移
- 物理服务器建议32核CPU+128GB内存起步
- 每台机器配备NVMe SSD存储,建议容量为预估数据量的3倍
重要提示:不要将ZooKeeper与ClickHouse部署在同一批机器上,这会导致资源竞争影响稳定性。我们曾经因此遭遇过严重的性能抖动问题。
1.2 网络与存储配置要点
网络方面建议万兆网卡起步,并确保:
- 节点间延迟<1ms
- 禁用swap分区
- 调整内核参数:vm.swappiness=1
- 设置合理的MTU值(通常9000)
存储配置需要特别注意:
xml复制<storage_configuration>
<disks>
<default>
<path>/data/clickhouse/</path>
</default>
<hot>
<path>/data/clickhouse/hot/</path>
<keep_free_space_bytes>10737418240</keep_free_space_bytes>
</hot>
</disks>
<policies>
<default>
<volumes>
<default>
<disk>default</disk>
</default>
<hot>
