0

Unsere Microservices verwenden JDK 8 Spring Cloud Stream API mit Spring Boot 1.5.2.RELEASE zum Erstellen von Nachrichten in der Kafka-Warteschlange. Für die Verbraucher-API verwenden wir Spring Kafka 1.1.2.RELEASE, speziell @KafkaListener. Nachrichtentyp Anwendung jsonSpring Cloud Stream Producer fügt bei der Verwendung von Spring Kafka Consumer "Junk" -Zeichen hinzu

Wir bemerken, dass die Verbraucher einige Junk-Zeichen auf die Nachricht in der Nähe des „content“ angehängt haben, die im Folgenden angegeben: JunkCharsInConsumer

Bei der Verwendung von Vanille Apache Kafka Client API 0.10.2.1 mit JDK 8, wir sehen immer noch Junk-Zeichen in den empfangenen Nachrichten.

Nur wenn wir Cloud Stream SINK verwenden, können wir die Nachrichten ohne irgendwelche Junk-Zeichen abrufen.

Ist dies ein Problem oder gibt es eine Einstellung im Producer/Consumer, die wir möglicherweise verpassen? Bitte geben Sie an, wenn zusätzliche Details erforderlich sind.

Dank

Antwort

0

Set der Produzent headerMode-raw.

Siehe the reference documentation.

headerMode

Wenn auf raw gesetzt, deaktiviert die Kopfzeile auf Ausgabe einzubetten. Wirksam nur für Messaging-Middleware, die Nachrichtenkopfzeilen nicht nativ unterstützt und Header-Einbettung erfordert. Nützlich bei der Erstellung von Daten für Nicht-Spring Cloud Stream-Anwendungen.

Vorgabe: embeddedHeaders.

+0

Vielen Dank für Ihre Antwort und die Details, Gary. Nur damit Sie wissen, dass das Problem nicht behoben wurde. Also haben wir vorerst die Antwort auf Byte-Array in Consumer konvertiert und haben einen Zeichenvergleich durchgeführt, den Inhalt von dem ersten Zeichen abholend, von dem wir wissen, dass es nach dem Müll sauber ist. Langfristiger Ansatz, um StreamListener im Consumer zu verwenden ist – barsakus

+0

Sie müssen etwas falsch konfiguriert haben - ich kann Ihnen versichern, dass RAW 'headerMode' diese Header nicht zum Nachrichtentext hinzufügen wird. –

Verwandte Themen