Kafka Stream可以将事件从一个群集转换并推送到另一个群集

时间:2019-08-06 20:16:16

标签: apache-kafka-streams

我正在尝试将一个kafka群集中的消息转换为另一个群集中的主题。我正在做的是

  1. 使用spring kafka侦听器(kafka 0.10)消费集群中来自消费者主题的事件

  2. 转换消息并使用spring kafka模板将消息发布到另一个集群中的主题

    public class KafkaConsumer implements AcknowledgingMessageListener<String, Object> {
     public void onMessage(ConsumerRecord<String, Object> data, Acknowledgment acknowledgment) {
    
       try {
        Object transformedData = data.value();//DO Something with the data like transform / massage
        kafkaTemplate.send(new ProducerRecord<String, Object>(topicName, data.key(), transformedData));
        acknowledgment.acknowledge();
        } catch (Exception e) {
              LOGGER.error("Push the messaged to Error Stream : " + e);
         }
    
       }
    }
    

想知道在产生记录失败时是否存在与消费者补偿有关的差异吗?

我发现也可以实现此目的的其他方法:

  1. 使用kafka流处理和转换来自消费者主题的消息,并使用Publisher将消息发布到另一个群集中的预期主题(How to connect to multiple clusters in a single Kafka Streams application?

  2. 使用kafka连接复制器将消费者主题模拟到Producer主题集群上。完成此操作后,我们将可以使用Kafka流(Can Kafka Streams output topic be on a separate cluster?

有人尝试过类似的方法吗?与上面列出的其他两种方法相比,我使用的方法是否有数据丢失的可能性或对性能有影响?

0 个答案:

没有答案