• ClickHouse-Keeper


    ClickHouse-Keeper 是什么:

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

    实现细节

    ZooKeeper最早的非常著名的开源协调系统之一. 它是通过Java语言实现的, 有一个相当节点和强大的数据模型. ZooKeeper的协调算法叫做 ZAB (ZooKeeper Atomic Broadcast) zk不能保证读取的线性化, 以为每个zk节点服务都是通过本地线性读的. ClickHouse Keeper是通过C++写的,和zookeeper不一样, ClickHouse Keeper使用的RAFT algorithm implementation算法. 这个算法允许线性读和写, 已经有几种不同的语言的开源实现.

    ClickHouse Keeper 默认提供了一些保证和ZooKeeper是一样的 (线性写, 非线性读)和. clickhouse keeper有一个兼容的客户端服务端协议, 所以任何标准的zookeeper客户端都可以用来与clickhouse keeper进行交互. 快照和日志的格式与ZooKeeper不兼容, 但是通过clickhouse-keeper-converter 允许转换 ZooKeeper 数据到 ClickHouse Keeper 快照. ClickHouse Keeper的interserver协议和zookeeper也不兼容,所以ZooKeeper / ClickHouse Keeper 混合部署集群是不可能的.

    Zookeeper与ClickHouse-Keeper一些场景对比

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

    • 使用java开发
    • 运维不便
    • 要求独立部署
    • zxid overflow 问题
    • snapshot 和 log 没有经过压缩
    • 不支持读的线性一致性

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

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

    HouseKeeper Vs Zookeeper

    • Zookeeper java 开发,有 JVM 痛点,执行效率不如 C++;Znode 数量太多容易出现性能问题,Full GC 比较多。
    • Zookeeper 运维复杂,需要独立部署组件,之前出问题比较多。HouseKeeper 部署形态比较多,可以 - standalone 模式和集成模式。
    • Zookeeper ZXID overflow 问题,HouseKeeper 没有该问题。
    • HouseKeeper 读写性能均有提升,支持读写线性一致性,关于一致性的级别参见- xzhu0027.gitbook.io/blog/misc/i…
    • HouseKeeper 代码与 CK 统一,自主闭环可控。未来可扩展能力强,可以基于此做 MetaServer 的设计开发。主流的的 MetaServer 基本都是 Raft+rocksDB 的组合,可以借助该 codebase 进行开发。

    作者:阿里云云栖号
    链接:https://juejin.cn/post/7044736272165765134
    来源:稀土掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    通俗易懂 强一致性、弱一致性、最终一致性、读写一致性、单调读、因果一致性 的区别与联系
    https://zhuanlan.zhihu.com/p/358585758
    https://zhuanlan.zhihu.com/p/67949045

  • 相关阅读:
    全局异常拦截和Spring Security认证异常的拦截的顺序
    再次霸榜“AI界奥运会”MLPerf™,浪潮的AI硬实力如何?
    【EI复现】基于主从博弈的新型城镇配电系统产消者竞价策略【IEEE33节点】(Matlab代码实现)
    精细化管理设备资产,降低企业运营成本
    3516DV300 推流
    不同的子序列问题I
    RN搜索高亮显示
    2022年,软件测试还能学吗?别学了,软件测试岗位饱和了...
    Android11 实现有线网络和wifi共存
    美格智能成为中国联通5G物联网OpenLab开放实验室生态合作伙伴,携手共创5G新未来
  • 原文地址:https://blog.csdn.net/JH_Zhai/article/details/127601177