不使用zk实现双机clickhouse、kafka数据同步

zk的算法需要至少3台服务器集群,而我们只有2台服务器。所以无法使用之前的zk集群来做心跳检测和数据同步。
目前需要实现双机kafka和clickhouse中的数据同步,由于zk双机集群会导致整个kafka和clickhouse集群不可用,
现需要新的方案去实现kafka和clickhouse数据同步。

''该回答引用ChatGPT''
如对你的问题有帮助,请点击右侧采纳即可!
没有使用ZooKeeper的话,一种可行的方案是利用ClickHouse的复制功能实现双机数据同步。ClickHouse的复制功能可以将一台ClickHouse节点的数据实时同步到另一台ClickHouse节点。可以将Kafka中的数据实时写入一台ClickHouse节点,然后再通过复制功能同步到另一台ClickHouse节点。这样两台ClickHouse节点就具有了相同的数据,并且在一台节点故障时,另一台节点可以提供数据服务。

需要注意的是,这种方案要求Kafka的写入性能足够高,以保证数据在实时写入ClickHouse节点后可以快速复制到另一台节点,否则将导致数据不一致

有点诡异,搭建之初不就应该考虑到用3台吗?
同意一楼想法

没有使用ZooKeeper的话,可以考虑以下两种方案来实现ClickHouse和Kafka的数据同步:

1.利用Kafka的MirrorMaker工具,它可以将Kafka的数据从一个集群复制到另一个集群。可以在两个ClickHouse节点上分别运行一个Kafka Consumer,从MirrorMaker生成的数据中读取数据并写入到自己的ClickHouse集群。

2.可以使用ClickHouse的复制功能实现两个ClickHouse集群的数据同步。可以在其中一个ClickHouse节点上运行一个Kafka Consumer,读取Kafka中的数据,并写入到ClickHouse集群中。然后在另一个ClickHouse节点上进行ClickHouse数据复制,从第一个ClickHouse节点复制数据。

这两种方案均需要编写代码或配置文件实现,详细的实现步骤可以参考相关文档。