You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@kafka.apache.org by navneet sharma <na...@gmail.com> on 2012/06/20 21:25:56 UTC
Sending any other object (instead of Message)
Hello,
I am following this group from quite some time. Recently i tried sending my
customized object from producer instead of String.
I was successful in that by providing a way to serialize my object and
creating Message object like this:
Object event = <some object>;
Message message = new Message(TestUtils.getBytes(event))
producer.send(new ProducerData<Integer, Message>(topic, message));
TestUtils.getBytes just uses ObjectOutputStream to give a byte array.
while i was succesful in sending the object, but i could not retrieve it at
consumer end since kafka.message.Message doesnt carry any information about
underlying object(or maybe its always assuming it to be String).
My questions are:
1) Is it possible to send any other object then String?
2) If yes, then Can my approach be rectified? Or am i missing anything?
Thanks,
Navneet Sharma
Re: Sending any other object (instead of Message)
Posted by Jun Rao <ju...@gmail.com>.
Take a look at StringEncoder/StringDecoder in kafka.serializer
Thanks,
Jun
On Thu, Jun 28, 2012 at 2:39 AM, navneet sharma <navneetsharma0505@gmail.com
> wrote:
> hi Jun,
>
> is there any example to follow? I tried your suggestion but looks like i am
> missing something..
>
> Thanks,
> Navneet Sharma
>
> On Thu, Jun 21, 2012 at 1:56 AM, Jun Rao <ju...@gmail.com> wrote:
>
> > Navneet,
> >
> > The easiest way is to implement an Encoder and a Decoder of your objects
> > and specify it in the producer and the consumer, respectively.
> >
> > Thanks,
> >
> > Jun
> >
> > On Wed, Jun 20, 2012 at 12:25 PM, navneet sharma <
> > navneetsharma0505@gmail.com> wrote:
> >
> > > Hello,
> > >
> > > I am following this group from quite some time. Recently i tried
> sending
> > my
> > > customized object from producer instead of String.
> > >
> > > I was successful in that by providing a way to serialize my object and
> > > creating Message object like this:
> > >
> > > Object event = <some object>;
> > > Message message = new Message(TestUtils.getBytes(event))
> > > producer.send(new ProducerData<Integer, Message>(topic, message));
> > >
> > > TestUtils.getBytes just uses ObjectOutputStream to give a byte array.
> > >
> > > while i was succesful in sending the object, but i could not retrieve
> it
> > at
> > > consumer end since kafka.message.Message doesnt carry any information
> > about
> > > underlying object(or maybe its always assuming it to be String).
> > >
> > > My questions are:
> > > 1) Is it possible to send any other object then String?
> > > 2) If yes, then Can my approach be rectified? Or am i missing anything?
> > >
> > > Thanks,
> > > Navneet Sharma
> > >
> >
>
Re: Sending any other object (instead of Message)
Posted by navneet sharma <na...@gmail.com>.
hi Jun,
is there any example to follow? I tried your suggestion but looks like i am
missing something..
Thanks,
Navneet Sharma
On Thu, Jun 21, 2012 at 1:56 AM, Jun Rao <ju...@gmail.com> wrote:
> Navneet,
>
> The easiest way is to implement an Encoder and a Decoder of your objects
> and specify it in the producer and the consumer, respectively.
>
> Thanks,
>
> Jun
>
> On Wed, Jun 20, 2012 at 12:25 PM, navneet sharma <
> navneetsharma0505@gmail.com> wrote:
>
> > Hello,
> >
> > I am following this group from quite some time. Recently i tried sending
> my
> > customized object from producer instead of String.
> >
> > I was successful in that by providing a way to serialize my object and
> > creating Message object like this:
> >
> > Object event = <some object>;
> > Message message = new Message(TestUtils.getBytes(event))
> > producer.send(new ProducerData<Integer, Message>(topic, message));
> >
> > TestUtils.getBytes just uses ObjectOutputStream to give a byte array.
> >
> > while i was succesful in sending the object, but i could not retrieve it
> at
> > consumer end since kafka.message.Message doesnt carry any information
> about
> > underlying object(or maybe its always assuming it to be String).
> >
> > My questions are:
> > 1) Is it possible to send any other object then String?
> > 2) If yes, then Can my approach be rectified? Or am i missing anything?
> >
> > Thanks,
> > Navneet Sharma
> >
>
Re: Sending any other object (instead of Message)
Posted by Jun Rao <ju...@gmail.com>.
Navneet,
The easiest way is to implement an Encoder and a Decoder of your objects
and specify it in the producer and the consumer, respectively.
Thanks,
Jun
On Wed, Jun 20, 2012 at 12:25 PM, navneet sharma <
navneetsharma0505@gmail.com> wrote:
> Hello,
>
> I am following this group from quite some time. Recently i tried sending my
> customized object from producer instead of String.
>
> I was successful in that by providing a way to serialize my object and
> creating Message object like this:
>
> Object event = <some object>;
> Message message = new Message(TestUtils.getBytes(event))
> producer.send(new ProducerData<Integer, Message>(topic, message));
>
> TestUtils.getBytes just uses ObjectOutputStream to give a byte array.
>
> while i was succesful in sending the object, but i could not retrieve it at
> consumer end since kafka.message.Message doesnt carry any information about
> underlying object(or maybe its always assuming it to be String).
>
> My questions are:
> 1) Is it possible to send any other object then String?
> 2) If yes, then Can my approach be rectified? Or am i missing anything?
>
> Thanks,
> Navneet Sharma
>