Thanks, Selina, for sharing this solution for the reference. :) Cheers,
Fang, Yan yanfang...@gmail.com On Mon, Aug 17, 2015 at 7:17 PM, Job-Selina Wu <swucaree...@gmail.com> wrote: > Hi, All: > > Finally I fixed this bug. > > 1. set advertised.host.name at config/server.properites as AWS > *private IP* address > (not public *DNS*) > 2. comment host.name at config/server.properites > 3. In remote java producer: > props.put("metadata.broker.list", borkerPrivateIp+ ":9092"); > The value brokerPrivateIp is same as advertised.host.name > at config/server.properites > > This bug blocked me a while... > > Sincerely, > Selina > > On Thu, Aug 13, 2015 at 9:56 PM, Job-Selina Wu <swucaree...@gmail.com> > wrote: > > > Dear All: > > > > I got kafka.common.FailedToSendMessageException: Failed to send > > messages after 3 tries as below. When I have a remote java Kafka producer > > try to produce message to Kafka broker Server. Both Producer and Broker > are > > at AWS cloud. BTW, I tried my code first at local machine and Virtual > > machine first, It did not work either.(advertised.host.name was set to > > the ip address of the kafka server*)* > > > > *-------------**This is my KafkaProducer at remote Producer for producer > > configuration**-------------* > > public class KafkaProducer { > > > > Properties props = new Properties(); > > > > private final Producer<String, String> producer; > > private final String kafkaServerIP = "52.19.2.74:9092"; > > > > public KafkaProducer() { > > > > > > props.put("metadata.broker.list", kafkaServerIP); > > //props.put("bootstrap.servers", "localhost:9092 "); > > props.put("serializer.class", "kafka.serializer.StringEncoder"); > > props.put("advertised.host.name", "localhost"); > > props.put("request.required.acks", "0"); > > > > ProducerConfig config = new ProducerConfig(props); > > > > producer = new Producer<String, String>(config); > > } > > > > public Producer<String, String> getProducer() { > > > > return this.producer; > > } > > } > > > > > > --------*The configs/server.properties at Kafka Server at AWS*----- > > > > zookeeper.connect=localhost:2181 > > zookeeper.connection.timeout.ms=6000 > > > > delete.topic.enable=true > > > > broker.id=0 > > port=9092 > > host.name=localhost > > *advertised.host.name <http://advertised.host.name>*= > > ec2-51-18-21-235.us-west-1.compute.amazonaws.com > > > > # below is same as default > > #advertised.port=<port accessible by clients> > > #advertised.port=<port accessible by clients> > > num.network.threads=3 > > num.io.threads=8 > > socket.send.buffer.bytes=102400 > > socket.receive.buffer.bytes=102400 > > socket.request.max.bytes=104857600 > > log.dirs=/tmp/kafka-logs > > num.partitions=1 > > num.recovery.threads.per.data.dir=1 > > #log.flush.interval.messages=10000 > > #log.flush.interval.ms=1000 > > log.retention.hours=168 > > #log.retention.bytes=1073741824 > > log.segment.bytes=1073741824 > > log.retention.check.interval.ms=300000 > > log.cleaner.enable=false > > > > > > - - --- - - - - -- > > > > kafka.common.FailedToSendMessageException: Failed to send messages after > 3 > > tries. > > 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:77) > > at kafka.javaapi.producer.Producer.send(Producer.scala:33) > > at com.cinarra.kafka.Main.main(Main.java:21) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:606) > > at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293) > > at java.lang.Thread.run(Thread.java:745) > > > > > > reference: > > > > > http://stackoverflow.com/questions/30217255/cant-connect-to-a-remote-kafka-producer-from-windows-through-java-code > > > > Your help is highly appreciated, > > Selina > > > > >