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

OneStory
OneStory

OneStory 是一款创新的AI故事生成助手,用AI快速生成连续性、一致性的角色和故事。

下载

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

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

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

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

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

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

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

403

2023.08.11

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

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

249

2023.10.07

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

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

181

2024.05.11

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

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

225

2025.12.18

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

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

233

2024.02.23

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

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

717

2025.12.08

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

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

63

2025.12.13

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

1

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

35

2026.03.04

热门下载

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

精品课程

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

共48课时 | 10.2万人学习

Git 教程
Git 教程

共21课时 | 4万人学习

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

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