将Kafka连接器连接到eventhub

时间:2019-03-21 12:14:29

标签: apache-kafka apache-flink azure-eventhub

我正在使用Apache Flink,并尝试通过使用Apache Kafka协议从其接收消息来连接到Azure eventhub。我设法连接到Azure eventhub并接收消息,但不能使用flink功能“ setStartFromTimestamp(...)”,如此处所述(https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/kafka.html#kafka-consumers-start-position-configuration)。 当我尝试从时间戳中获取一些消息时,Kafka说,代理端的消息格式在0.10.0之前。 有人面对吗? Apache Kafka客户端版本为2.0.1 Apache Flink版本是1.7.2

已更新:尝试在使用者软件包中使用Azure-Event-Hub快速入门示例(https://github.com/Azure/azure-event-hubs-for-kafka/tree/master/quickstart/java)添加代码以获取时间戳的偏移量,如果消息版本低于0.10.0 kafka,则按预期返回null。

        List<PartitionInfo> partitionInfos = consumer.partitionsFor(TOPIC);
        List<TopicPartition> topicPartitions = partitionInfos.stream().map(pi -> new TopicPartition(pi.topic(), pi.partition())).collect(Collectors.toList());
        Map<TopicPartition, Long> topicPartitionToTimestampMap = topicPartitions.stream().collect(Collectors.toMap(tp -> tp, tp -> 0L));
        Map<TopicPartition, OffsetAndTimestamp> offsetAndTimestamp = consumer.offsetsForTimes(topicPartitionToTimestampMap);
        System.out.println(offsetAndTimestamp);

1 个答案:

答案 0 :(得分:0)

对不起,我们错过了。 EH现在支持Kafka offsetsForTimes()(以前不受支持)。

以后随时可以针对我们的Github提出问题。 https://github.com/Azure/azure-event-hubs-for-kafka