如何从一个Kafka主题复制一些消息到另一个从bash?

v1l68za4  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(497)

请帮忙
我们有两个Kafka主题。我要把10封邮件从主题1复制到主题2。
我试着和Kafka游戏机的消费者和制作人一起做
首先,我将topic1中的10条消息保存到某个目录中:

for (( i=1; i<=10; i++ )); do bin/kafka-console-consumer.sh --bootstrap-server 1.1.2.3:9092 --group CONSUMER1 --topic TOPIC1 --max-messages 1 > /tmp/_topic/$i.msg; done;

然后我尝试与Kafka控制台制作人发送到主题2:

for (( i=1; i<=10; i++ )); do  bin/kafka-console-producer.sh --broker-list 1.1.2.4:9092 --topic TOPIC2 < /tmp/_topic/$i.msg; done;

我有个错误-我的服务不能反序列化数据。我的问题是:
我的解决办法行得通吗?
为什么我能接受这个错误?
把信息从一个主题复制到另一个主题的最佳方法是什么?
upd:我是如何解决这个问题的(谢谢:罗宾·莫法特):我使用Kafka镜子和这个jar:https://github.com/opencore/mirrormaker_topic_rename 有了它,我就可以在一个集群上从一个主题kafka复制消息到另一个主题kafka

yduiuuwa

yduiuuwa1#

你可以这样做 kafkacat :

kafkacat -b localhost:9092 -C -t source-topic -K: -e -o beginning -c10 | \
kafkacat -b localhost:9092 -P -t target-topic -K:
``` `|` 重定向第一个kafkacat的输出(这是一个 `-C` 消费者)输入第二个Kafka卡特(这是一个 `-P` 生产商) `-c10` 意味着只需要消耗10条信息 `-o beginning` 意思是从主题的开头开始。
请注意,如果您有二进制数据(例如avro),这将不起作用。要正确地做到这一点,请使用类似replicator或mirrormaker2和bytearrayconverter的工具。
裁判:https://rmoff.net/2019/09/29/copying-data-between-kafka-clusters-with-kafkacat/

相关问题