You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@kafka.apache.org by Bill Hastings <bl...@gmail.com> on 2015/04/13 08:36:51 UTC
Topic to broker assignment
Hi Guys
How do topics get assigned to brokers? I mean if I were to create a topic X
and publish to it how does Kafka assign the topic and the message to a
particular broker? If I have create a topic with say 10 partitions how does
kafka assign each partition to a different broker?
--
Cheers
Bill
Re: Topic to broker assignment
Posted by Gwen Shapira <gs...@cloudera.com>.
Here's the algorithm as described in AdminUtils.scala:
/**
* There are 2 goals of replica assignment:
* 1. Spread the replicas evenly among brokers.
* 2. For partitions assigned to a particular broker, their other
replicas are spread over the other brokers.
*
* To achieve this goal, we:
* 1. Assign the first replica of each partition by round-robin,
starting from a random position in the broker list.
* 2. Assign the remaining replicas of each partition with an
increasing shift.
*
* Here is an example of assigning
* broker-0 broker-1 broker-2 broker-3 broker-4
* p0 p1 p2 p3 p4 (1st replica)
* p5 p6 p7 p8 p9 (1st replica)
* p4 p0 p1 p2 p3 (2nd replica)
* p8 p9 p5 p6 p7 (2nd replica)
* p3 p4 p0 p1 p2 (3nd replica)
* p7 p8 p9 p5 p6 (3nd replica)
*/
So, assignment is partially random (we start at a random position) and
then round-robin to spread replicas and partitions out.
The information is persisted in ZooKeeper.
Hope this helps.
Gwen
On Mon, Apr 13, 2015 at 12:15 PM, Bill Hastings <bl...@gmail.com> wrote:
> Thanks for the reference. But it doesn't seem to cover how a particular
> topic is assigned to a particular broker and also how the replicas are
> chosen. For eg if I have brokers A B C D and E what algorithm is used to
> assign a topic X and partition 1 to brokers B D and E if the chosen
> replication factor is 3. Is this information persisted somewhere? Sorry
> just getting my feet wet.
>
> On Mon, Apr 13, 2015 at 11:57 AM, Jiangjie Qin <jq...@linkedin.com.invalid>
> wrote:
>
>> A quick reference.
>> http://www.slideshare.net/junrao/kafka-replication-apachecon2013
>>
>>
>> On 4/12/15, 11:36 PM, "Bill Hastings" <bl...@gmail.com> wrote:
>>
>> >Hi Guys
>> >
>> >How do topics get assigned to brokers? I mean if I were to create a topic
>> >X
>> >and publish to it how does Kafka assign the topic and the message to a
>> >particular broker? If I have create a topic with say 10 partitions how
>> >does
>> >kafka assign each partition to a different broker?
>> >
>> >--
>> >Cheers
>> >Bill
>>
>>
>
>
> --
> Cheers
> Bill
Re: Topic to broker assignment
Posted by Bill Hastings <bl...@gmail.com>.
Thanks for the reference. But it doesn't seem to cover how a particular
topic is assigned to a particular broker and also how the replicas are
chosen. For eg if I have brokers A B C D and E what algorithm is used to
assign a topic X and partition 1 to brokers B D and E if the chosen
replication factor is 3. Is this information persisted somewhere? Sorry
just getting my feet wet.
On Mon, Apr 13, 2015 at 11:57 AM, Jiangjie Qin <jq...@linkedin.com.invalid>
wrote:
> A quick reference.
> http://www.slideshare.net/junrao/kafka-replication-apachecon2013
>
>
> On 4/12/15, 11:36 PM, "Bill Hastings" <bl...@gmail.com> wrote:
>
> >Hi Guys
> >
> >How do topics get assigned to brokers? I mean if I were to create a topic
> >X
> >and publish to it how does Kafka assign the topic and the message to a
> >particular broker? If I have create a topic with say 10 partitions how
> >does
> >kafka assign each partition to a different broker?
> >
> >--
> >Cheers
> >Bill
>
>
--
Cheers
Bill
Re: Topic to broker assignment
Posted by Jiangjie Qin <jq...@linkedin.com.INVALID>.
A quick reference.
http://www.slideshare.net/junrao/kafka-replication-apachecon2013
On 4/12/15, 11:36 PM, "Bill Hastings" <bl...@gmail.com> wrote:
>Hi Guys
>
>How do topics get assigned to brokers? I mean if I were to create a topic
>X
>and publish to it how does Kafka assign the topic and the message to a
>particular broker? If I have create a topic with say 10 partitions how
>does
>kafka assign each partition to a different broker?
>
>--
>Cheers
>Bill