Thank you, Michal.

That answers all my questions, many thanks.

Josh

On Thu, Oct 5, 2017 at 1:21 PM, Michal Michalski <
michal.michal...@zalando.ie> wrote:

> Hi Josh,
>
> 1. I don't know for sure (haven't seen the code that does it), but it's
> probably the most "even" split possible for given number of brokers and
> partitions. So for 8 partitions and 3 brokers it would be [3, 3, 2].
> 2. See "num.partitions" in broker config. BTW. only producer can create
> topic dynamically, not consumer.
> 3. See 3. The value has to be non-zero, so it's always specified.
> 4. Based on the ProducerRecord (message) key. See:
> https://kafka.apache.org/0110/javadoc/index.html?org/apache/
> kafka/clients/producer/KafkaProducer.html
> 5. Yes - you need to create multiple consumers with the same group.id.
> 6. Yes, there'll be at most one consumer (within a consumer group) handling
> given partition at a given time.
> 7. Yes, it's a process called "rebalancing" - it reassigns partitions to
> consumers when the number of consumers changes.
> 8. Your consumer will commit the last processed offset to special Kafka
> topic (or Zookeeper, but that's not a default) every so often (periodically
> or "on demand", when you tell it to), so for each partition and consumer
> group you know what was and wasn't processed yet. The new consumer will
> pick up from the place where the dead one left off.
> 9. If I understand your question correctly - no, Kafka is pull-based and
> not push-based by design.
>
> Kind regards,
> MichaƂ
>
> On 5 October 2017 at 09:37, Josh Maidana <joshmaid...@gmail.com> wrote:
>
> > Hello
> >
> > I am quite new to KAFKA and come from a JMS/messaging background. Reading
> > through the documentation, I gather using partitions and consumer groups,
> > KAFKA achieves both P2P and pub/sub. I have a few questions on
> partitions,
> > though, I was wondering someone could kindly please point me in the right
> > directions.
> >
> > 1. In a multi-server scenario, how does KAFKA decide how many partitions
> of
> > a given topic is assigned to a given node?
> > 2. When a topic is created dynamically by a consumer or a producer, how
> is
> > the number of partitions specified?
> > 3. If it is not or can't be specified, how does KAFKA decide the number
> of
> > partitions to create?
> > 4. If a producer doesn't specify a partition, how does KAFKA decide to
> > which partition the message is allocated.
> > 5. On consumption, do I need to explicitly create multiple consumers to
> > attain parallelism?
> > 6. If yes, would KAFKA allocate different partition to different
> consumers
> > who are part of the same consumer group?
> > 7. If one of those consumers exit, would KAFKA reallocate the partitions
> to
> > remaining consumers?
> > 8. How are the offsets propagated from an exited to consumer to the new
> > consumer to which the partition is reallocated?
> > 9. Is there a listener based API for consumption instead os a blocking
> > poll?
> >
> > Kind regards
> > Josh
> >
>

Reply via email to