[
https://issues.apache.org/jira/browse/KAFKA-1494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14155113#comment-14155113
]
Josh Rosen commented on KAFKA-1494:
-----------------------------------
Hi Joe,
Sorry for cluttering up this JIRA; I should have posted to the mailing list. I
was _just_ about to hit 'send' on my message when I tried one more thing and
stumbled on a solution for my issue:
It turns out that publishing to auto-created topics seems to work in my setup
(using the configurations tweaks suggested here); it was only publication to
manually-created topics that was failing. The root problem turned out to be
that I had created ZkClient without specifying a serializer, which seemed to
allow certain ZK metadata operations to succeed even though the stored data
didn't seem to be usable by the broker / producer. When I configured ZkClient
to use ZKStringSerializer, the problem disappeared and I could publish data as
expected. Hope this helps anyone who has run into a similar issue (and sorry
for the clutter!).
> Failed to send messages after 3 tries.
> --------------------------------------
>
> Key: KAFKA-1494
> URL: https://issues.apache.org/jira/browse/KAFKA-1494
> Project: Kafka
> Issue Type: Bug
> Components: controller, core
> Affects Versions: 0.8.1.1
> Environment: Mac OS
> Reporter: darion yaphets
> Assignee: Neha Narkhede
>
> I use default server & zookeeper config to start-up zookeeper server and
> kafka broker on my machine to test custom message which based on proto buffer
> . I write a client to send protobuf-message to kafka broker and source code
> as following :
> Properties properties = new Properties();
> properties.put("serializer.class",
> "java_example.ProtoBufMessage");
> properties.put("metadata.broker.list", "localhost:9092");
> ProducerConfig config = new ProducerConfig(properties);
> testBuf buffer = testBuf.newBuilder().setID(0)
> .setUrl("darion.yaphet.org").build();
> Producer<String, testBuf> producer = new Producer<String,
> testBuf>(
> config);
> producer.send(new KeyedMessage<String, testBuf>("protobuffer",
> buffer));
> client debug log report a exception:
> [FileSystemMoniter] INFO [main] kafka.utils.Logging$class.info(68) |
> Disconnecting from localhost:9092
> [FileSystemMoniter] DEBUG [main] kafka.utils.Logging$class.debug(52) |
> Successfully fetched metadata for 1 topic(s) Set(protobuffer)
> [FileSystemMoniter] WARN [main] kafka.utils.Logging$class.warn(83) | Error
> while fetching metadata [{TopicMetadata for topic protobuffer ->
> No partition metadata for topic protobuffer due to
> kafka.common.LeaderNotAvailableException}] for topic [protobuffer]: class
> kafka.common.LeaderNotAvailableException
> [FileSystemMoniter] ERROR [main] kafka.utils.Logging$class.error(97) | Failed
> to send requests for topics protobuffer with correlation ids in [0,8]
> Exception in thread "main" kafka.common.FailedToSendMessageException: Failed
> to send messages after 3 tries.
> at
> kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:90)
> at kafka.producer.Producer.send(Producer.scala:76)
> at kafka.javaapi.producer.Producer.send(Producer.scala:33)
> at java_example.ProducerExamples.main(ProducerExamples.java:26)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)