Hopefully one of the developers can jump in here. I believe there is a
future you can use to get the errors back from the producer. In addition,
you should check the following configs on the producer:

request.required.acks - this controls whether or not your producer is going
to wait for an acknowledgement from the broker, and how many brokers it
waits for
request.timeout.ms - how long the producer waits to satisfy the acks
setting before marking the request failed
retry.backoff.ms - how long the producer waits between retries
message.send.max.retries - the maximum number of retries the producer will
attempt a failed request

-Todd


On Sun, Nov 22, 2015 at 12:31 PM, Jan Algermissen <
algermissen1...@icloud.com> wrote:

> Hi Todd,
>
> yes, correct - thanks.
>
> However, what I am not getting is that the KafkaProducer (see my other
> mail from today) silently accepts the messages and fills them up in the
> buffer until it is exhausted instead of saying that the broker is not
> reachable.
>
> IOW, it seems from an application perspective I am unable to detect that
> messages are not being sent out. Is this normal behavior and I am simply
> doing something wrong or could it be a producer bug?
>
> Jan
>
> Config and code again:
>
> ProducerConfig.BOOTSTRAP_SERVERS_CONFIG -> brokers,
> ProducerConfig.RETRIES_CONFIG -> "0",
> ProducerConfig.ACKS_CONFIG -> "1",
> ProducerConfig.COMPRESSION_TYPE_CONFIG -> "none",
> ProducerConfig.TIMEOUT_CONFIG -> new Integer(30000),
> // ProducerConfig.BATCH_SIZE_CONFIG -> new Integer(16384),
> ProducerConfig.BATCH_SIZE_CONFIG -> new Integer(10),
> ProducerConfig.BUFFER_MEMORY_CONFIG -> new Integer(66554432),
> ProducerConfig.BLOCK_ON_BUFFER_FULL_CONFIG -> new java.lang.Boolean(false),
> ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG ->
> "org.apache.kafka.common.serialization.StringSerializer",
> ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG ->
> "org.apache.kafka.common.serialization.StringSerializer"
>
>
> ....
>
> kafkaProducer.send(new ProducerRecord[String,String](topic, key, data),new
> Callback {
>  def onCompletion(recordMetadata: RecordMetadata, e: Exception):Unit = {
>    if(e != null) {
>      logger.error(s"Could not send $data",e)
>    }
>    logger.info("The offset of the record we just sent is: " +
> recordMetadata.offset())
>    ()
>  }
>
> })
>
>
> > On 22 Nov 2015, at 20:49, Todd Palino <tpal...@gmail.com> wrote:
> >
> > Replicas and Isr are both a comma separated list of broker IDs. So in
> this
> > output, I am seeing that you have two Kafka brokers with IDs 1 and 2. You
> > have a topic, capture, with 16 partitions at replication factor 1 (1
> > replica per partition). The broker with ID 2 is not online, which is why
> it
> > shows in the Replica list for some partitions (meaning that it is
> assigned
> > to be a replica), but not in the Isr list (which would indicate that it
> is
> > currently in-sync).
> >
> > The Leader field is the broker ID which is currently the leader for that
> > partition. For the partitions that are assigned to broker 1, you see that
> > broker 1 is the leader. For the partitions that are assigned to broker 2,
> > the leader is listed as -1, which indicates that there is no available
> > leader. These partitions are considered offline and cannot be produced to
> > or consumed from. When broker 2 comes back online, the controller will
> > perform an unclean leader election and select broker 2 (the only replica
> > available) as the leader for those partitions.
> >
> > -Todd
> >
> >
> > On Sun, Nov 22, 2015 at 11:39 AM, Jan Algermissen <
> > algermissen1...@icloud.com> wrote:
> >
> >> Hi,
> >>
> >> I have a topic with 16 partitions that shows the following output for
> >>
> >> kafka-topics.sh --zookeeper xxxxx:2181 --topic capture --describe
> >>
> >> Can anyone explain to me what the difference in replicas means and what
> >> Leader of -1 means?
> >>
> >> In the logs of my producer I see that no messages seem to be sent to the
> >> partitions with '-1' and th eproducer buffer becomes exhausted afetr a
> >> while (maybe that is related?)
> >>
> >> Jan
> >>
> >>        Topic:capture   PartitionCount:16       ReplicationFactor:1
> >> Configs:
> >>
> >>        Topic: capture  Partition: 0    Leader: 1       Replicas: 1
> >> Isr: 1
> >>        Topic: capture  Partition: 1    Leader: 1       Replicas: 1
> >> Isr: 1
> >>        Topic: capture  Partition: 2    Leader: -1      Replicas: 2
> >> Isr:
> >>        Topic: capture  Partition: 3    Leader: 1       Replicas: 1
> >> Isr: 1
> >>        Topic: capture  Partition: 4    Leader: -1      Replicas: 2
> >> Isr:
> >>        Topic: capture  Partition: 5    Leader: 1       Replicas: 1
> >> Isr: 1
> >>        Topic: capture  Partition: 6    Leader: -1      Replicas: 2
> >> Isr:
> >>        Topic: capture  Partition: 7    Leader: 1       Replicas: 1
> >> Isr: 1
> >>        Topic: capture  Partition: 8    Leader: -1      Replicas: 2
> >> Isr:
> >>        Topic: capture  Partition: 9    Leader: 1       Replicas: 1
> >> Isr: 1
> >>        Topic: capture  Partition: 10   Leader: -1      Replicas: 2
> >> Isr:
> >>        Topic: capture  Partition: 11   Leader: 1       Replicas: 1
> >> Isr: 1
> >>        Topic: capture  Partition: 12   Leader: -1      Replicas: 2
> >> Isr:
> >>        Topic: capture  Partition: 13   Leader: 1       Replicas: 1
> >> Isr: 1
> >>        Topic: capture  Partition: 14   Leader: -1      Replicas: 2
> >> Isr:
> >>        Topic: capture  Partition: 15   Leader: 1       Replicas: 1
> >> Isr: 1
>
>

Reply via email to