基于zk的表复制
    https://www.jianshu.com/p/d1842290bd48
    https://clickhouse.yandex/docs/en/operations/table_engines/replication/
    可靠性,通过使用复制机制,来抵抗单机宕机、机房宕机风险
    依赖ClickHouse的复制引擎—ReplicatedMergeTree,在ZK的基础上,共享同一个ZK路径的节点,会相互同步数据复制表配置

    1. 复制表通过zookeeper协调不同副本之间的数据
    2. <zookeeper optional="true">
    3. <node index="1">
    4. <host>172.16.8.179</host>
    5. <port>2181</port>
    6. </node>
    7. <node index="2">
    8. <host>172.16.8.95</host>
    9. <port>2181</port>
    10. </node>
    11. <node index="3">
    12. <host>172.16.8.72</host>
    13. <port>2181</port>
    14. </node>
    15. </zookeeper>

    可靠性—表复制 - 图1

    image.png可靠性—表复制 - 图3
    可靠性—表复制 - 图4
    可靠性—表复制 - 图5

    故障:ReplicatedMergeTree表引擎,双副本,其中一台机器宕机或者是硬件故障
    思路::一个副本数据损坏,jlogclickhouse会报zk中元数据不一致错误,不会在新启动的机器上创建相应的库和表,需要手动创建
    准备工作: 将新机器准备好或者硬盘更换后,启动clickhouse
    机器: 故障机A,正常机B,替换机C

    开始:
    1、将Jlogclickhouse中配置ck集群的地址将故障机A移除并重启;
    2、在替换机C上根据租户ID分别创建local_x和distributed_x数据库(已经安装并启动clickhouse);
    3、在正常机B上通过show create table 查看各个库的建表语句,然后在替换机C上执行;
    4、等所有表结构创建好后,观察替换机C其中一个表的数据看是不是正常了。正常的情况下,应该已经将正常机B机器的数据同步部分过来了;
    5、数据同步OK后,在Jlogclickhouse上添加替换机C IP地址;

    只要通过创建表在zk中注册相应的信息,ck默认会同步副本之间的数据