0

0

常见ClickHouse集群部署架构

爱谁谁

爱谁谁

发布时间:2025-07-19 11:14:27

|

402人浏览过

|

来源于php中文网

原创

clickhouse与elasticsearch、hdfs等采用主从架构的分布式系统不同,它采用的是多主(无中心)架构。集群中的每个节点角色相同,客户端可通过任意节点访问并获得一致的结果。

ClickHouse通过分片技术进行数据的横向分割,分片依赖于集群,每个集群包含1到多个分片,每个分片对应ClickHouse的一个服务节点。分片数量的上限受节点数量的限制(一个分片只能对应一个服务节点)。

然而,ClickHouse与其他分布式系统不同,它没有高度自动化的分片功能。ClickHouse引入了本地表和分布式表的概念;本地表相当于一个数据分片。分布式表则是一张逻辑表,不存储数据,充当本地表的访问代理,类似于分库中间件。通过分布式表,可以代理访问多个数据分片,从而实现分布式查询。当然,数据分发也可以在应用层实现。

ClickHouse同样支持数据副本,其副本概念与Elasticsearch类似,但在ClickHouse中,分片是逻辑概念,物理上由副本承载。

ClickHouse的数据副本通常通过ReplicatedMergeTree系列复制表引擎实现,副本间通过ZooKeeper实现数据一致性。此外,分布式表可以同时负责分片和副本的数据写入。

以四节点实现多分片和双副本为例:

方案一常见ClickHouse集群部署架构(上图中shard作为主副本)在每个节点上创建一个数据表,作为一个数据分片,使用ReplicatedMergeTree表引擎实现数据副本,而分布表作为数据写入和查询的入口。这是最常见的集群实现方式。

方案二常见ClickHouse集群部署架构在每个节点上创建一个数据表,作为一个数据分片,分布表同时负责分片和副本的数据写入工作。

Content at Scale
Content at Scale

SEO长内容自动化创作平台

下载

这种实现方案下,不需要使用复制表,但分布表节点需要同时负责分片和副本的数据写入工作,可能成为写入的单点瓶颈。

方案三常见ClickHouse集群部署架构在每个节点上创建一个数据表,作为一个数据分片,同时创建两个分布表,每个分布表只管理一半的数据。

副本的实现仍需借助ReplicatedMergeTree类表引擎。

方案四常见ClickHouse集群部署架构在每个节点上创建两个数据表,同一数据分片的两个副本位于不同节点上,每个分布式表管理一般的数据。

这种方案可以在较少的节点上实现数据分布与冗余,但部署上略显复杂。

ClickHouse的分片与副本功能完全依赖配置文件实现,无法自动管理,因此在集群规模较大时,运维成本较高。数据副本依赖ZooKeeper实现同步,当数据量较大时,ZooKeeper可能会成为瓶颈。如果资源充足,建议使用方案一,主副本和副副本位于不同节点,以更好地实现读写分离与负载均衡。如果资源不足,可以使用方案四,每个节点承载两个副本,但部署方式上略复杂。

原文链接?:https://www.jianshu.com/p/f1fa7e5cb67f

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

321

2023.08.11

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

231

2023.10.07

什么是中间件
什么是中间件

中间件是一种软件组件,充当不兼容组件之间的桥梁,提供额外服务,例如集成异构系统、提供常用服务、提高应用程序性能,以及简化应用程序开发。想了解更多中间件的相关内容,可以阅读本专题下面的文章。

176

2024.05.11

Golang 中间件开发与微服务架构
Golang 中间件开发与微服务架构

本专题系统讲解 Golang 在微服务架构中的中间件开发,包括日志处理、限流与熔断、认证与授权、服务监控、API 网关设计等常见中间件功能的实现。通过实战项目,帮助开发者理解如何使用 Go 编写高效、可扩展的中间件组件,并在微服务环境中进行灵活部署与管理。

212

2025.12.18

dubbo和zookeeper有什么区别
dubbo和zookeeper有什么区别

dubbo和zookeeper的区别:1、功能定位;2、使用场景;3、数据存储与协调;4、集成与关系;5、性能与可靠性;6、扩展性与灵活性;7、社区与生态系统。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

221

2024.02.23

Java 大数据处理基础(Hadoop 方向)
Java 大数据处理基础(Hadoop 方向)

本专题聚焦 Java 在大数据离线处理场景中的核心应用,系统讲解 Hadoop 生态的基本原理、HDFS 文件系统操作、MapReduce 编程模型、作业优化策略以及常见数据处理流程。通过实际示例(如日志分析、批处理任务),帮助学习者掌握使用 Java 构建高效大数据处理程序的完整方法。

111

2025.12.08

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

26

2025.12.13

Golang 分布式缓存与高可用架构
Golang 分布式缓存与高可用架构

本专题系统讲解 Golang 在分布式缓存与高可用系统中的应用,涵盖缓存设计原理、Redis/Etcd集成、数据一致性与过期策略、分布式锁、缓存穿透/雪崩/击穿解决方案,以及高可用架构设计。通过实战案例,帮助开发者掌握 如何使用 Go 构建稳定、高性能的分布式缓存系统,提升大型系统的响应速度与可靠性。

60

2026.01.09

java学习网站推荐汇总
java学习网站推荐汇总

本专题整合了java学习网站相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.8万人学习

Git 教程
Git 教程

共21课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号