【问题标题】:Copy data between kafka topics using kafka connectors使用 kafka 连接器在 kafka 主题之间复制数据
【发布时间】:2020-11-04 16:50:57
【问题描述】:

我是 Kafka 新手,现在我需要将数据从一个 kafka 主题复制到另一个主题。我想知道这样做的可能方法是什么?我能想到的方法如下:

  1. Kakfa 消费者 + Kafka 生产者
  2. Kafka 流
  3. Kafka 接收器连接器 + 生产者
  4. Kafka 消费者 + 源连接器

我的问题是:是否可以在两者之间使用两个 kafka 连接器?例如。接收器连接器+源连接器。是这样吗,你能给我一些好的例子吗?或者一些提示?

提前致谢!

【问题讨论】:

    标签: apache-kafka apache-kafka-connect


    【解决方案1】:

    您列出的所有方法都是可能的。哪一个是最好的实际上取决于您想要对流程进行控制,或者它是一次性操作还是您想要继续运行的东西。

    Kafka Streams 提供了一种通过 DSL 将一个主题流入另一个主题的简单方法

    你可以这样做(演示代码显然不是用于生产!):

    Properties props = new Properties();
    props.put(StreamsConfig.APPLICATION_ID_CONFIG, "streams-wordcount");
    props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
    props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
    
    final Serde<byte[]> bytesSerdes = Serdes.ByteArray();
    final StreamsBuilder builder = new StreamsBuilder();
    KStream<byte[], byte[]> input = builder.stream(
            "input-topic",
            Consumed.with(bytesSerdes, bytesSerdes)
    );
    input.to("output-topic", Produced.with(bytesSerdes, bytesSerdes));
    
    final KafkaStreams streams = new KafkaStreams(builder.build(), props);
    try {
        streams.start();
        Thread.sleep(60000L);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        streams.close();
    }
    

    【讨论】:

      猜你喜欢
      • 2017-02-02
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 2019-06-04
      • 2015-09-03
      • 2021-06-10
      • 2021-09-06
      • 2017-04-07
      相关资源
      最近更新 更多