Ich benutze Confluent Kafka C# Client. Wie bekomme ich den neuesten Offset, der von einem Thema verbraucht wird?Wie erhält man den neuesten Offset des Kafka-Themas in Confluencent kafka C# library?
Antwort
Wenn Sie eine Nachricht erhalten, sollte sie das Thema, die Partition und den Offset enthalten, von wo sie gekommen ist (zusätzlich zu Schlüssel und Wert).
Vom example here:
consumer.OnMessage += (_, msg)
=> Console.WriteLine($"Topic: {msg.Topic} Partition: {msg.Partition} " +
$"Offset: {msg.Offset} {msg.Value}");
Sie auch ein Ereignis erhalten, wenn es das Ende der Partition jedes Thema erreicht
consumer.OnPartitionEOF += (_, end)
=> Console.WriteLine($"Reached end of topic {end.Topic} partition {end.Partition}" +
$" , next message will be at offset {end.Offset}");
Zusätzlich zur vorherigen Antwort, können Sie
List<TopicPartitionOffsetError> Position(IEnumerable<TopicPartition> partitions)
Es wird den letzten Offset von librdkafka für bestimmte Thema/Partitionen abgerufen
Sie haben eine ähnliche Committed
Methode, für die begangen neueste von Verbraucher-Offset
Auch können Sie die neuesten bekannten Offsets
WatermarkOffsets QueryWatermarkOffsets(TopicPartition topicPartition, TimeSpan timeout)
er eine Anfrage an kafka Cluster Abfrage sendet. Der Anruf blockiert, legen Sie eine angemessene Zeitüberschreitung fest. Derzeit können Sie eine Anfrage nicht gleichzeitig auf mehreren Partitionen senden. Sie können es entweder zum letzten bekannten Versatz zu erhalten, entweder berechnen Verzögerung
Es gibt auch
WatermarkOffsets GetWatermarkOffsets(TopicPartition topicPartition)
, die den internen Zustand in librdkafka abfragt und konnte zurückkehren INVALID_OFFSET (-1001). Sie können damit Verzögerungen aufgrund der Verarbeitung der Daten feststellen. (Differenz zwischen Position und Ergebnis dieses Verfahrens)
Statt Offset-Informationen von Verbrauchern Abrufen (Ich möchte nicht Nachricht konsumieren ersten) konnte ich Thema Offsets (high
und low
) vom Produzenten wie folgt lesen:
var partitionOffset = _producer.QueryWatermarkOffsets(new TopicPartition("myTopic", myPartition), TimeSpan.FromSeconds(10));
- 1. Kafka - Einfachste Möglichkeit, den neuesten Offset zu erhalten
- 2. Wie erhält man den neuesten Tag-Namen?
- 3. So erhalten Sie den neuesten Offset von Kafka
- 4. So ermitteln Sie den Offset eines Kafka-Verbrauchers
- 5. Kafka Offset-Management
- 6. SparkStreaming/Kafka Offset Handhabung
- 7. Wie erhält man den Pfad des Batch-Skripts in Windows?
- 8. Wie man den Titel des Tupels anstelle des Tupelwerts erhält
- 9. Kafka Spark-Streaming Offset Ausgabe
- 10. Wie erhält man den Inhalt des Inhalts einer Zip-Datei?
- 11. Kafka Consumer Group Offset Retention
- 12. Kafka Java API Offset Operationen Klärung
- 13. Kafka Verbraucher Offset Max Wert?
- 14. Pyspark Kafka Offset-Bereich Einheiten
- 15. Wie erhält man den Objektschlüssel des zugehörigen Objekts in angularFire2?
- 16. Wie erhält man den Namen des Controllers in WebApi Request?
- 17. Wie bekomme ich den letzten Nachrichten-Offset vom FlinkKafkaConsumer?
- 18. Wie wird Apache Kafka Offset erzeugt?
- 19. kafka replikation flushed offset details
- 20. Wie erhält man den Typ eines dynamischen Objekts in C#?
- 21. Wie erhält man den Wert eines CultureTypes-Objekts in C#?
- 22. Wie erhält man den Replikationsfaktor von C * -Cluster?
- 23. Wie erhält man den Objektnamen?
- 24. Wie erhält man den Dezimalwert?
- 25. Wie erhält man den Gerätetyp?
- 26. D3.js: Wie erhält man den Auswahlindex anstelle des Datenindex?
- 27. Wie erhält man den Wert des versteckten Inputs mit angularjs?
- 28. Wie erhält man den Namen des Klassifikators aus Mavens Eigenschaften?
- 29. Wie man den Index des Elements durch xpath erhält?
- 30. Wie erhält man den Namen des Xamarin.Forms-Elements vom Objekt?