我正在使用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);
答案 0 :(得分:0)
对不起,我们错过了。 EH现在支持Kafka offsetsForTimes()(以前不受支持)。
以后随时可以针对我们的Github提出问题。 https://github.com/Azure/azure-event-hubs-for-kafka