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集群部署架构在每个节点上创建一个数据表,作为一个数据分片,分布表同时负责分片和副本的数据写入工作。

PhotoG
PhotoG

PhotoG是全球首个内容营销端对端智能体

下载

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

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

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

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

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

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

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

相关专题

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

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

325

2023.08.11

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

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

232

2023.10.07

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

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

178

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、社区与生态系统。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

223

2024.02.23

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

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

117

2025.12.08

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

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

28

2025.12.13

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

40

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

62

2026.01.16

热门下载

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

精品课程

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

共48课时 | 7.3万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

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

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