Ok, got it.

I am observing another strange behavior now.

When I do a simple Fetch request, I specify a MaxSize of 100.

The setting is that the requested topic has much more messages than 100
bytes, so
I expect the broker will respond with however many messages fit in 100
bytes.

What happens:

The FetchResponse's size parameter minus the size of the header (2 bytes
for the error code) equals exactly 100 (what I specified as a MaxSize).

So I have 100 bytes of messages in this response.

I start reading the messages 1 by 1, until I consumed 96 bytes.
There's 4 bytes left. This forms an incomplete message.
The 4 bytes (the LENGTH parameter) give the correct length for the
next message, but then the rest of the fields (MAGIC, COMPRESSION and BODY)
are missing.

Is this behavior y design?

Thanks
P


On Tue, May 15, 2012 at 2:12 PM, Jun Rao <jun...@gmail.com> wrote:

> The response relies on the position of each fetch response matching the
> position of the corresponding fetch request.
>
> Jun
>
> On Tue, May 15, 2012 at 10:38 AM, Petar Maymounkov <pe...@tumblr.com>
> wrote:
>
> > So this is the same format as regular fetch then.
> >
> > What confuses me is how you differentiate which messages
> > are in response to which part of the multifetch request.
> >
> > Thanks
> > Petar
> >
> >
> > On Tue, May 15, 2012 at 12:07 PM, Jun Rao <jun...@gmail.com> wrote:
> >
> > > It's a 4-byte fetch count, followed by a 2-byte error code, followed
> by a
> > > list of ByteBufferMessageSet. The details can be in the
> > MultiFetchResponse
> > > class.
> > >
> > > Jun
> > >
> > > On Tue, May 15, 2012 at 7:43 AM, Petar Maymounkov <pe...@tumblr.com>
> > > wrote:
> > >
> > > > Hi all,
> > > >
> > > > The kafka doc "Writing a Kafka driver" does not seem to
> > > > have the format of the multi-fetch response.
> > > >
> > > > (Surely it is not the same as the fetch response).
> > > >
> > > > Can anyone point me to a place where I can read about it?
> > > >
> > > > Thanks
> > > > Petar
> > > >
> > >
> >
>

Reply via email to