Вы должны использовать правильный сериализатор ключей и значений при вызове API производителя и потребителя.
Кафка предоставляет некоторые ключи по умолчанию и сериализатор значений, такие как StringSerializer и т. Д.
String serializer для создания и потребления строковых сообщений.
props.put ("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put ("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
Например, вы можете сослаться на документ производителя и потребителя.
https://kafka.apache.org/10/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html
https://kafka.apache.org/10/javadoc/?org/apache/kafka/clients/consumer/KafkaConsumer.html
Реестр схем
Поскольку вы отправляете сообщение из nodejs и потребляете это сообщение с использованием приемника kafka, вам необходимо предоставить тот же ключ и значение средства для удаления сообщений в приемнике java kafka.
Существует один вариант решения этой несовместимой проблемы: использовать schema-registry для хранения схемы нашего сообщения с использованием kafka avro.
Затем мы можем использовать эту схему в nodejs-kafka-производителе и java-kafka-потребителе, чтобы получить сообщение.
Nodejs kafka производитель с примером avro
Вот пример nodejs kafka avro
Потребитель Java Kafka, использующий реестр схемы пример