Hi Jiangjie,

This is what I have understood. Please correct me if I am wrong

I don’t use the partition class at all(KeyedMessage<String,String> data =
new KeyedMessage<String, String>(topic_name,new_mes). It partitions
messages randomly to different partitions. I don’t see it sticking  to any
broker for 10 mins. I guess it follows some random partitioning logic. I am
using the following 0.8.1.1 version.

MessageAndMetadata on consumer side prints the following message: Can you
help me find out metadat regarding partition number?

*Thread 0: Message(magic = 0, attributes = 0, crc = 127991357, key =
java.nio.HeapByteBuffer[pos=0 lim=1 cap=55], payload =
java.nio.HeapByteBuffer[pos=0 lim=50 cap=50])*

Thanks
Sandeep

On Tue, Nov 25, 2014 at 7:07 PM, Jiangjie Qin <j...@linkedin.com.invalid>
wrote:

> Palur,
>
> Just adding to what Guozhang said, the answer to your question might
> depend on which producer you are using.
> Assuming you are producing messages without keys to the same topic, in new
> producer(KafkaProducer), the messages will go to brokers in a round robin
> way, so the messages will end up in brokers evenly distributed. Whereas in
> old producer, it actually sticks to a particular broker for 10 min (by
> default) then switch to another random partition. In that case, if you
> send messages fast enough, you might see uneven distribution in brokers.
>
> For the consumer, if you are using high level consumer, when reading from
> KafkaStream, you will get MessageAndMetadata, the topic and partition
> information is included in it as well as the raw message.
>
> Jiangjie (Becket) Qin
>
>
>
> On 11/25/14, 10:01 AM, "Guozhang Wang" <wangg...@gmail.com> wrote:
>
> >Palur,
> >
> >If the 8 partitions are hosted on each one of the nodes, assuming
> >replication factor 1 then each node will get roughly 100000 / 8 messages
> >due to the random partitioner. If you want to know exactly how many
> >messages is on each broker then you can use a simple consumer which allows
> >you to specify the partition id you want to consume from.
> >
> >In the new consumer (0.9), each of the consumed message will contain the
> >partition id as part of its message metadata.
> >
> >Guozhang
> >
> >On Tue, Nov 25, 2014 at 7:47 AM, Palur Sandeep <psand...@hawk.iit.edu>
> >wrote:
> >
> >> Dear Developers,
> >>
> >> I am using the default partitioning logic(Random Partitioning) to
> >>produce
> >> messages into brokers. That is I don't use a partitioner.class.
> >>
> >> My requirement is If I produce 100000 messages using the below code for
> >>a
> >> broker that has 8 partitions across 8 nodes. How many messages will each
> >> partition have? Is there any API that can help me find the broker id of
> >>the
> >> each message I consume from the consumer side?
> >>
> >> PS: I dont want to use partitioner.class. I want use the kafka's default
> >> partitioning logic.
> >>
> >>   KeyedMessage<String,String> data = new KeyedMessage<String,
> >> String>(topic_name,new_mes);
> >>
> >> producer.send(data);
> >>
> >> --
> >> Regards,
> >> Sandeep Palur
> >> Data-Intensive Distributed Systems Laboratory, CS/IIT
> >> Department of Computer Science, Illinois Institute of Technology (IIT)
> >> Phone : 312-647-9833
> >> Email : psand...@hawk.iit.edu <sraja...@hawk.iit.edu>
> >>
> >
> >
> >
> >--
> >-- Guozhang
>
>


-- 
Regards,
Sandeep Palur
Data-Intensive Distributed Systems Laboratory, CS/IIT
Department of Computer Science, Illinois Institute of Technology (IIT)
Phone : 312-647-9833
Email : psand...@hawk.iit.edu <sraja...@hawk.iit.edu>

Reply via email to