{{ item.name }}
{{ item.name }}

{{ it.name }}

{{ it.text }}

{{ it.name }}

{{ innerIt.name }}

{{ innerIt.text }}

{{news.time}}
{{news.title}}
ClickHouse-Keeper 初探
2022-03-17发布 2,955浏览

一、ClickHouse-Keeper 是什么:

ClickHouse 社区在 21.8 版本中开始引入了 ClickHouse-Keeper ,直至 ClickHouse 21.12 发布公告提到 ClickHouse Keeper 功能基本完成。ClickHouse Keeper 是 ZooKeeper 的替代品,与 ZooKeeper 不同,ClickHouse Keeper 是用 C++ 编写的,并使用 RAFT 算法实现,该算法允许对读写具有线性化能力。

二、Zookeeper 与 ClickHouse-Keeper 一些场景对比

为什么要引入 ClickHouse-Keeper 呢?主要是 ClickHouse 使用 Zookeeper 有着众多痛点:

  • 使用java开发

  • 运维不便

  • 要求独立部署

  • zxid overflow 问题

  • snapshot 和 log 没有经过压缩

  • 不支持读的线性一致性

而 ClickHouse-Keeper 存在着以下优点:

  • 使用 C++ 开发,技术栈与 ClickHouse 统一
  • 即可独立部署,又可集成到 ClickHouse 中
  • 没有 zxid overflow 问题
  • 读性能更好,写性能相当
  • 支持对 snapshot 和 log 的压缩和校验
  • 支持读写的线性一致性

三、配置方式

相较之前的集群配置,没有太大区别,而 ClickHouse-Keeper 仅当<keeper_server>标签存在于配置中时才会运行。

四、参数说明

  • tcp_port:客户端连接的端口(ZooKeeper 的默认值为2181)
  • tcp_port_secure:用于客户端和 keeper-server 之间 SSL 连接的安全端口
  • server_id:Keeper集群的每个节点唯一ID
  • log_storage_path:日志路径,最好将日志存储在IO性能强设备
  • snapshot_storage_path:快照路径

<keeper_server>.<coordination_settings>部分

  • operation_timeout_ms:单个客户端操作超时配置

  • min_session_timeout_ms:客户端会话最小超时

  • session_timeout_ms:客户端会话的最大超时

  • dead_session_check_period_ms:检查过期会话并将其删除的频率

  • heart_beat_interval_ms:leader 向 follower 发送心跳的频率

  • election_timeout_lower_bound_ms:如果 follower 在此时间间隔内没有收到 leader 的心跳,则可以发起 leader 选举

  • rotate_log_storage_interval:在单个文件中存储多少日志记录

  • reserved_log_items:压缩前要存储多少日志记录

  • snapshot_distance:创建快照的频率

  • snapshots_to_keep:快照保留份数

  • max_requests_batch_size:在将请求发送到 RAFT 之前,请求中的最大批处理请求大小

  • raft_logs_level:raft日志记录级别

  • auto_forwarding:允许将follower的写请求转发给leader

  • shutdown_timeout:等待完成内部连接并关闭的时间

<keeper_server>.<raft_configuration>部分

  • Id:集群的每个节点ID

  • Hostname:服务器主机名

  • Port:服务器监听端口

五、如何迁移 Zookeeper 至ClicHouse-Keeper

既然 ClickHouse-Keeper 优势这么明显,那么如何将 Zookeeper 中的数据迁移到 ClickHouse-Keeper 中呢?官方提供了迁移工具 ClickHouse-Keeper-Converter, 它能够将 Zookeeper 中的数据 dump 成 ClicHouse-Keeper 能够加载的 snapshot 。


上一篇
MySQL : SSL 连接浅析
400-820-6580 13916131869
marketing@actionsky.com
上海市闵行区万源路2138号泓茂中心2号楼
产品详情
关系型数据库
AI数据库
数据库智能管理平台
数据库生态产品
行业案例
金融行业
新零售行业
制造业
通信行业
更多
公司动态
最新新闻
国产化信息
技术分享
关于我们
公司简介
公司分布
国家专利
资质认证
扫码关注公众号
© Copyright 2017, All rights reserved by: 上海爱可生信息技术股份有限公司 沪ICP备12003970号-1 | 法律声明 | 网站地图
沪公网安备 31010402003331号