Roxana
Roxana

Reputation: 1581

Kafka JSON console producer

I am trying to use Kafka's console producer, kafka-console-producer. It seems that by default, it uses the string serializer.

Is it possible to set the Kafka console producer to use the JSON serializer?

Upvotes: 2

Views: 3637

Answers (2)

OneCricketeer
OneCricketeer

Reputation: 191894

If you have control of the input data, there should be no reason to explicitly set JSON serializer onto the console producer

The JSON serializer is just an extension of the String Serializer; it also takes the raw string object and converts to bytes. Plus, plain strings are valid JSON types, anyway.

Kafka only stores bytes - it doesn't care what format your data exists in

Upvotes: 2

wFateem
wFateem

Reputation: 346

I just wanted to add in addition to the fact that the StringSerializer is the default, you can choose whatever serializer you want (even custom implementations) by providing the class names in the following producer configurations:

key.serializer
value.serializer

Your consumers will then need to use the appropriate deserializer and you would set that in the following consumer configurations:

key.deserializer
value.deserializer

Apache Kafka Documentation

Edited: At first I thought the serializer class had a default value but this doesn't seem to be the case according to the Kafka documentation. It might be set according to the data type used for both your key and value pairs in the Record being produced. In any case, these would be the parameters you need to configure to set a specific class with the implementation of the serializer/deserializer you need.

Upvotes: 1

Related Questions