我想从thr prod集群中的Kafka集群/主题流入dev环境中的另一个Kafka集群,以进行可伸缩性和regrrssion测试。
对于鸭子磁带解决方案,我级联了一个Kafka消费者和制作人,但我的直觉告诉我应该有更好的方法。但是,我还没有找到任何好的解决方案。任何人都可以帮助我吗?
答案 0 :(得分:12)
如果要将数据从一个群集复制到另一个群集,则有一个名为MirrorMaker
的kafka工具。
Kafka附带了一个用于在Kafka集群之间镜像数据的工具。该工具从源群集读取并写入目标群集。将从源群集中的主题读取数据,并将其写入目标群集中具有相同名称的主题。
以下是运行MirrorMaker
工具的语法:
bin/kafka-run-class.sh kafka.tools.MirrorMaker
--consumer.config consumer.properties
--producer.config producer.properties --whitelist my-topic
您可以在kafka安装目录中找到此脚本。在这里,您需要提供consumer.properties
的{{1}}和source cluster
producer.properties
。您可以通过destination cluster
选项将哪些主题镜像到白名单。
您可以找到有关Mirroring data between clusters
的更多信息 注意: MirrorMaker将数据复制到--whitelist
topic_name
中destination cluster
的{{1}}
答案 1 :(得分:3)
虽然mirror使之适用于整个群集解决方案,但是,对于同一个群集,ducktap解决方案也不错,因为MirrorMaker假定您将一个群集拉到另一个群集。
因此,您只需在同一集群中不同主题之间复制数据的解决方案,kafkacat是您的朋友。
Warning message:
In sub[[11]][sub$domain == "Eukaryota"] <- sub[[11]] * Q18S$q[1] :
number of items to replace is not a multiple of replacement length
答案 2 :(得分:0)
Kafka基本上是一个消息传递队列,因此它具有被动行为:必须将消息放入(producer
),并且必须从<<>中提取消息 / strong> it(consumer
)。
如果你想在两个kafka主题之间建立一种管道,那么来自一个主题的消息将自动转到另一个主题,你需要一些具有第一个主题的消费者属性的代码和一个制作人到第二个主题。
根据您的编程语言,您可以选择一些准备充分的文档生产者和/或消费者解决方案。
对于更复杂的案例,您可以查看 Apache Storm 等
答案 3 :(得分:0)
如果您需要将消息从一个主题复制到另一个主题(可能需要一些其他逻辑或转换),则也可以使用 Kafka流。
https://docs.confluent.io/current/streams/index.html
和示例
或者,选中MirrorMaker
。