我想从thr prod cluster中的一个kafka集群/topic流到dev环境中的另一个kafka集群中,以进行可伸缩性和更新测试。对于duck-tape解决方案,我将kafka的消费者和制作人串联起来,但我的直觉告诉我应该有更好的方法。但是,我还没有找到好的解决办法。有人能帮我吗?
bybem2ql1#
如果您需要将消息从一个主题复制到另一个主题,可能需要一些额外的逻辑或转换,您也可以使用kafka流。https://docs.confluent.io/current/streams/index.html和例子https://github.com/confluentinc/kafka-streams-examples/blob/5.4.0-post/src/main/java/io/confluent/examples/streams/wordcountlambdaexample.java或者,检查 MirrorMaker .
MirrorMaker
dldeef672#
虽然mirror make非常适合跨集群解决方案,但是对于同一集群,ducktap解决方案并不差,因为mirrormaker假设您正在从一个集群拉到另一个集群。因此,您只需在同一集群中的不同主题之间复制数据的解决方案,kafkacat就是您的朋友。
export BOOTSTRAP_SERVERS=localhost:9096 export SOURCE_TOPIC=source_topic export TARGET_TOPIC=target_topic kafkacat -C -b $BOOTSTRAP_SERVERS -o beginning -e -t $SOURCE_TOPIC | kafkacat -P -b $BOOTSTRAP_SERVERS -t $TARGET_TOPIC
q5iwbnjs3#
如果您想将数据从一个集群复制到另一个集群,那么有一个kafka工具叫做 MirrorMaker .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 你的 source cluster 以及 producer.properties 你的 destination cluster . 您可以将哪些主题镜像到白名单中 --whitelist 选项。您可以找到有关在集群之间镜像数据的更多信息注:mirrormaker将数据复制到 topic_name 在 destination cluster 作为 source cluster
consumer.properties
source cluster
producer.properties
destination cluster
--whitelist
topic_name
ndasle7k4#
kafka基本上是一个消息队列,因此它有一个被动行为:必须有东西将消息放入其中( producer ),必须有东西从中提取信息( consumer ).如果你想在两个Kafka主题之间建立一个管道,这样一个主题的消息就会自动转到另一个主题,那么你需要一些代码,这些代码的属性是第一个主题的使用者和第二个主题的生产者。根据您的编程语言,您可以选择一些现成的、有良好文档记录的生产者和/或消费者解决方案。对于更复杂的情况,您可以查看apachestorm等。
producer
consumer
4条答案
按热度按时间bybem2ql1#
如果您需要将消息从一个主题复制到另一个主题,可能需要一些额外的逻辑或转换,您也可以使用kafka流。
https://docs.confluent.io/current/streams/index.html
和例子
https://github.com/confluentinc/kafka-streams-examples/blob/5.4.0-post/src/main/java/io/confluent/examples/streams/wordcountlambdaexample.java
或者,检查
MirrorMaker
.dldeef672#
虽然mirror make非常适合跨集群解决方案,但是对于同一集群,ducktap解决方案并不差,因为mirrormaker假设您正在从一个集群拉到另一个集群。
因此,您只需在同一集群中的不同主题之间复制数据的解决方案,kafkacat就是您的朋友。
q5iwbnjs3#
如果您想将数据从一个集群复制到另一个集群,那么有一个kafka工具叫做
MirrorMaker
.kafka附带了一个在kafka集群之间镜像数据的工具。该工具从源集群读取数据,然后写入目标集群。数据将从源集群中的主题读取,并写入目标集群中具有相同名称的主题。
下面是要运行的语法
MirrorMaker
工具:您可以在kafka安装目录中找到这个脚本。这里你需要提供
consumer.properties
你的source cluster
以及producer.properties
你的destination cluster
. 您可以将哪些主题镜像到白名单中--whitelist
选项。您可以找到有关在集群之间镜像数据的更多信息
注:mirrormaker将数据复制到
topic_name
在destination cluster
作为source cluster
ndasle7k4#
kafka基本上是一个消息队列,因此它有一个被动行为:必须有东西将消息放入其中(
producer
),必须有东西从中提取信息(consumer
).如果你想在两个Kafka主题之间建立一个管道,这样一个主题的消息就会自动转到另一个主题,那么你需要一些代码,这些代码的属性是第一个主题的使用者和第二个主题的生产者。
根据您的编程语言,您可以选择一些现成的、有良好文档记录的生产者和/或消费者解决方案。
对于更复杂的情况,您可以查看apachestorm等。