Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Role

ZooKeeper Path

Type

Data Description

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="2f37e5f22fee9939-f723ec4d-4d084c8e-92a4a206-5b1ec31ca639a0a4998ed0d8"><ac:plain-text-body><![CDATA[

ID Registry

/brokers/ids/[0..N]

Ephemeral

String in the format of "creator:host:port" of the broker.

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="084b366b4a238bd0-df9a8eaf-4bc049c9-970e8978-fcb2453930b600327e453255"><ac:plain-text-body><![CDATA[

Topic Registry

/brokers/topics/[topic]/[0..N]

Ephemeral

Number of partitions that topic has on that Broker.

]]></ac:plain-text-body></ac:structured-macro>

...

  • All Consumers in a ConsuerGroup will come to a consensus as to who is consuming what.
  • Each Broker+Topic+Partition combination is consumed by one and only one Consumer, even if it means that some Consumers don't get anything at all.
  • Wiki Markup
    A Consumer should try to have as many partitions on the same Broker as possible, so sort the list by \[Broker ID\]-\[Partition\] (0-0, 0-1, 0-2, etc.), and assign them in chunks.
  • Consumers are sorted by their Consumer IDs (which are just UUIDs). If there are three Consumers, two Brokers, and two partitions in each, the split might look like:
    • Wiki Markup
      Consumer 59a1bce1-2b1d-11e1-9aff-040ccee02800A: \[0-0, 0-1\]
    • Wiki Markup
      Consumer 95eb94bd-2b1d-11e1-8e73-040ccee02800B: \[0-2, 1-0\]
    • Wiki Markup
      Consumer bb451045-2b1d-11e1-b742-040ccee02800C: \[1-1, 1-2\]
  • If the distribution can't be even and some Consumers must have more partitions than others, the extra partitions always go to the earlier consumers on the list. So you could have a distribution like 4-4-4-4 or 5-5-4-4, but never 4-4-4-5 or 4-5-4-4.

...