Thank you.

I would have expected for the topic to be created either by the producer or
consumer, as it is a bit indeterministic, whether the consumer or producer
would come up first.

Kind regards


On Fri, Oct 6, 2017 at 12:53 PM, Michal Michalski <
michal.michal...@zalando.ie> wrote:

> Hey Josh,
>
> Consumption from non-existent topic will end up with
> "LEADER_NOT_AVAILABLE".
>
> However (!) I just tested it locally (Kafka 0.11) and it seems like
> consuming from a topic that doesn't exist with auto.create.topics.enable
> set to true *will create it* as well (I'm checking it in Zookeeper's
> /brokers/topics path).
>
> I'm a bit surprised this works. Documentation states that:
>
> "You have the option of either adding topics manually *or having them be
> created automatically when data is first published to a non-existent
> topic.*
> "
>
> This (pretty old) email thread confirm that that's intentional:
> http://grokbase.com/t/kafka/users/14a2rgj2h2/auto-topic-
> creation-not-working-for-attempts-to-consume-non-existing-topic
> (Jun Rao: "In general, *only writers should trigger auto topic creation,
> but not the readers*. So, a topic can be auto created by the producer, but
> not the consumer.")
>
> So I'm not sure now if it's a regression or a change made later that's not
> reflected in the docs, but it looks like you *can* currently create topics
> using consumer. I wouldn't rely on this "feature" though - to me,
> personally, it seems wrong and I'm guessing it might be a bug.
>
> Please correct me if I'm wrong / missing something :-)
>
> Michał
>
>
>
> On 6 October 2017 at 04:37, Josh Maidana <joshmaid...@gmail.com> wrote:
>
> > Michal,
> >
> > You mentioned topics are only dynamically created with producers. Does
> that
> > mean if a consumer starts on a non-existent topic, it throws an error?
> >
> > Kind regards
> > Meeraj
> >
> > On Thu, Oct 5, 2017 at 9:20 PM, Josh Maidana <joshmaid...@gmail.com>
> > wrote:
> >
> > > 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
> > >> >
> > >>
> > >
> > >
> >
>



-- 
Kind regards
*Josh Meraj Maidana*

Reply via email to