Thanks Gerad for the helpful hint..I was looking for samples on how to publish/consume java objects and could not find any concrete samples. Some references points old APIs I guess.
Im using Kafka 2.11 version.I have written my own serialiser( I thought I have to, based on guides ) and don't know which methods I have to use to publish.. Now I can somehow publish and consume objects.. I'll look into avro schema registry too. Regards, Ratha. On 22 March 2016 at 18:25, Gerard Klijs <gerard.kl...@dizzit.com> wrote: > If I'm reading right, your question is more about how to successfully > de(serialise) java object? You might want to take a look at the confluent > avro schema registry. Using avro schema's you can easily store messages in > a java object created by the schema. This way the messages will also be a > lot smaller, witch helps performance. And you don't have to maintain you > own de(serialiser). > > On Tue, Mar 22, 2016 at 3:38 AM Ratha v <vijayara...@gmail.com> wrote: > > > Hi all; > > Im a newbie to kafka. Im trying to publish my java object to kafka topic > an > > try to consume. > > I see there are some API changes in the latest version of the kafka. can > > anybody point some samples for how to publish and consume java objects? I > > have written my own data serializer, but could not publish that to a > topic. > > Any guide/samples would be appreciate.. > > > > > > *Customserilaizer* > > > > > > > > import java.io.ByteArrayInputStream; > > import java.io.ByteArrayOutputStream; > > import java.io.IOException; > > import java.io.ObjectInput; > > import java.io.ObjectInputStream; > > import java.io.ObjectOutput; > > import java.io.ObjectOutputStream; > > > > > > import kafka.serializer.Decoder; > > import kafka.serializer.Encoder; > > > > public class CustomSerializer implements Encoder<FileObj>, > > Decoder< FileObj > { > > > > @Override > > public byte[] toBytes(FileObj file) { > > try { > > > > ByteArrayOutputStream bos = new ByteArrayOutputStream(); > > ObjectOutput out = null; > > byte[] rawFileBytes; > > try { > > out = new ObjectOutputStream(bos); > > out.writeObject(file); > > rawFileBytes = bos.toByteArray(); > > > > } finally { > > try { > > if (out != null) { > > out.close(); > > bos.close(); > > } > > } catch (Exception ex) { > > ex.getLocalizedMessage(); > > } > > > > } > > return rawFileBytes; > > } catch (IOException e) { > > e.printStackTrace(); > > return null; > > } > > > > } > > > > @Override > > public FileObj fromBytes(byte[] fileContent) { > > ByteArrayInputStream bis = new ByteArrayInputStream(fileContent); > > ObjectInput in = null; > > Object obj = null; > > try { > > in = new ObjectInputStream(bis); > > obj = in.readObject(); > > > > } catch (IOException e) { > > > > e.printStackTrace(); > > } catch (ClassNotFoundException e) { > > > > e.printStackTrace(); > > } finally { > > try { > > bis.close(); > > if (in != null) { > > in.close(); > > } > > } catch (IOException ex) { > > // ignore > > } > > > > } > > return (FileObj) obj; > > } > > > > } > > > > > > > > -Ratha > > > > http://vvratha.blogspot.com/ > > > -- -Ratha http://vvratha.blogspot.com/