2017-05-29 3 views
0

Momentan verwende ich spring kafkatemplate, um eine Byte-Nachricht an kafka topic zu senden. Auf der Verbraucherseite deserialisieren wir diese Byte-Nachricht in den entsprechenden Nachrichtentyp. Nun haben wir Anforderung, wo wir zusammen mit der Nachricht zu Kafka-Thema auch correlationid senden müssen. Kann ich die Korrelations-ID zusammen mit der Byte-Nachricht auf dem Kafka-Thema senden und auf der Verbraucherseite separat abfragen?spring kafkatemplate correlation id

Antwort

0

Die kommende v0.11 von Kafka fügt Unterstützung für benutzerdefinierte Nachrichtenheader hinzu. Sie würden der Hauptkandidat sein, um die Korrelationsidentifikation zu erstellen.

Bis dahin, ich fürchte, Sie müssen die Korrelations-ID in den Nachrichtenwert setzen. Ihr Serializer und Deserializer sollte es zusammen mit Ihrer tatsächlichen Nutzlast in/aus einem Bytearray codieren/decodieren.

0

Laut Kafka Docs, CorrelationId ist eine vom Benutzer angegebene Ganzzahl. Es wird in der Antwort vom Server unverändert zurückgegeben. Es ist nützlich für die Übereinstimmung von Anfrage und Antwort zwischen dem Client und dem Server.

Wenn ich über Java-API, dann auf der Verbraucherseite sprechen Sie nur (topic_name, Partition, Offset, Wert) im Zusammenhang mit der Nachricht.

Sie können correlationId als Teil einer Nachricht senden, aber Sie müssen die Nachricht parsen, um sie auf der Verbraucherseite zu erhalten.

Verwandte Themen