Der Kafka -Produzent löst beim Initiieren von Transaktionen eine Ausnahme aus
Posted: 20 Mar 2025, 22:27
Ich habe eine .NET -Anwendung, die die Confluent Client -Bibliothek verwendet, um Nachrichten mit einem Transaktionsproduzenten an Kafka zu senden. Es verwendet einen Pool von Produzenten, um Threading -Probleme mit Transaktionen zu vermeiden, und jeder Produzent wird mit einer zufälligen Produzenten -ID erstellt (unter Verwendung eines Guid.Newguid () ).. Die Stapelverfolgung, die ich auf dem Server sehe, zeigt, dass die Ausnahme von BeginnTransaction .>
Code: Select all
Confluent.Kafka.KafkaException: ProduceRequest for [4] with 1 message(s) failed: Broker: Producer attempted an operation with an old epoch (broker X PID{Id:XXXXXX,Epoch:X}, base seq XXX): transactional producer fenced by newer producer instance
at Confluent.Kafka.Impl.SafeKafkaHandle.BeginTransaction()
... continued stack trace into our application.
< /code>
Ich glaube, dieser Fehler impliziert, dass ich mehrere Produzenten, die dieselbe Transaktions -ID teilen, nicht der Fall sein kann, da ich als Teil der Transaktions -ID eine neue Richtlinie generiere. Dies führt mich zu der Annahme, dass es geladen wird. Producedasync