Just curious - is there any way to by-pass the cluster metadata and only use a static broker (or a static broker list)? I thought before 0.8 we have a way to skip zookeeper and use static broker, right?
The issue is that I can't start my kafka server with the 208.39.***.** ip because that's not a real IP. It's a gateway that will direct the client process to different internal IPs with different port number. So for 208.39.***.**:9092, we will direct it to internal IP A. And for another port, we will direct it to another IP B. I am not sure how to get pass this. thanks, Jason On Fri, Jan 11, 2013 at 11:42 AM, Jun Rao <jun...@gmail.com> wrote: > The producer used 208.39.***.**:9092 to get the metadata, which was > successful. The metadata indicates that the producer should send messages > to the broker at address kafka.icare.com:9092, which was unsuccessful. The > problem may be item #2 listed in http://kafka.apache.org/faq.html > > Thanks, > > Jun > > On Fri, Jan 11, 2013 at 8:15 AM, Jason Huang <jason.hu...@icare.com> wrote: > >> Hello, >> >> I am testing the producer to send a message from my local PC to a >> remote Kafka server with 0.8.0 installed. However, I was only able to >> create the log file with that specific topic but not able to write any >> message to the log file. >> >> Here is what the log from the kafka server: >> >> [2013-01-11 10:43:59,787] INFO [KafkaApi-1] Auto creation of topic >> topic_227 with 1 partitions and replication factor 1 is successful! >> (kafka.server.KafkaApis) >> [2013-01-11 10:43:59,789] INFO [TopicChangeListener on Controller 1]: >> New topics: [Set(topic_227)], deleted topics: [Set()], new partition >> replica assignment [Map([topic_227,0] -> List(1))] >> (kafka.controller.PartitionStateMachine$TopicChangeListener) >> [2013-01-11 10:43:59,789] INFO [Controller 1]: New topic creation >> callback for [topic_227,0] (kafka.controller.KafkaController) >> [2013-01-11 10:43:59,790] INFO [Controller 1]: New partition creation >> callback for [topic_227,0] (kafka.controller.KafkaController) >> ....... >> [2013-01-11 10:43:59,830] INFO [Log Manager on Broker 1] Created log >> for topic topic_227 partition 0 in /opt/kafka-0.8.0/data/kafka-logs. >> (kafka.log.LogManager) >> [2013-01-11 10:43:59,831] WARN No previously checkpointed >> highwatermark value found for topic topic_227 partition 0. Returning 0 >> as the highwatermark (kafka.server.HighwaterMarkCheckpoint) >> [2013-01-11 10:43:59,831] INFO Replica Manager on Broker 1: Completed >> the leader state transition for topic topic_227 partition 0 >> (kafka.server.ReplicaManager) >> [2013-01-11 10:43:59,831] INFO Replica Manager on Broker 1: Completed >> leader and isr request LeaderAndIsrRequest(0,0,,1000,Map((topic_227,0) >> -> PartitionStateInfo(LeaderIsrAndControllerEpoch({ >> "ISR":"1","leader":"1","leaderEpoch":"0" >> },6),1)),Set(id:1,host:kafka.icare.com,port:9092),6) >> (kafka.server.ReplicaManager) >> [2013-01-11 10:43:59,959] INFO Closing socket connection to >> /173.162.***.** (kafka.network.Processor) >> >> So at this point there is a folder created on the server in the /logs >> directory named after the topic and partition: /logs/topic_227-0 >> And there are two files inside: >> -rw-r--r--. 1 root root 10485760 Jan 11 10:43 00000000000000000000.index >> -rw-r--r--. 1 root root 0 Jan 11 10:43 00000000000000000000.log >> >> >> However, the content of the actual message was not written to the .log >> file. I couldn't find any error in the kafka server log. However, from >> my JBoss log I see the following error: >> >> 10:47:11,554 INFO [kafka.client.ClientUtils$] >> (http-localhost-127.0.0.1-8080-2) Fetching metadata for topic >> Set(topic_227) >> 10:47:11,568 INFO [kafka.producer.SyncProducer] >> (http-localhost-127.0.0.1-8080-2) Connected to 208.39.***.**:9092 for >> producing >> 10:47:11,591 INFO [kafka.producer.SyncProducer] >> (http-localhost-127.0.0.1-8080-2) Disconnecting from >> 208.39.***.**:9092 >> 10:47:11,592 WARN [kafka.producer.async.DefaultEventHandler] >> (http-localhost-127.0.0.1-8080-2) Failed to send to broker -1 with >> data Map([topic_227,0] -> >> ByteBufferMessageSet(MessageAndOffset(Message(magic = 0, attributes = >> 0, crc = 818361588, key = java.nio.HeapByteBuffer[pos=0 lim=1 cap=51], >> payload = java.nio.HeapByteBuffer[pos=0 lim=46 cap=46]),0))) >> 10:47:11,695 INFO [kafka.client.ClientUtils$] >> (http-localhost-127.0.0.1-8080-2) Fetching metadata for topic >> Set(topic_227) >> 10:47:11,710 INFO [kafka.producer.SyncProducer] >> (http-localhost-127.0.0.1-8080-2) Connected to 208.39.***.**:9092 for >> producing >> 10:47:11,742 INFO [kafka.producer.SyncProducer] >> (http-localhost-127.0.0.1-8080-2) Disconnecting from >> 208.39.***.**:9092 >> 10:47:11,885 ERROR [kafka.producer.SyncProducer] >> (http-localhost-127.0.0.1-8080-2) Producer connection to >> kafka.icare.com:9092 unsuccessful: >> java.nio.channels.UnresolvedAddressException >> at sun.nio.ch.Net.checkAddress(Net.java:30) [classes.jar:1.6.0_33] >> at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:512) >> [classes.jar:1.6.0_33] >> at kafka.network.BlockingChannel.connect(BlockingChannel.scala:57) >> at kafka.producer.SyncProducer.connect(SyncProducer.scala:139) >> at >> kafka.producer.SyncProducer.getOrMakeConnection(SyncProducer.scala:154) >> at >> kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:68) >> >> >> The server ip is 208.39.***.** and the server name is kafka.icare.com. >> I am not sure why it first connected to the server with the ip address >> and successfully created the topic with default partition. Then it >> tried to use the server name to connect and thus failed? I feel like I >> might be missing some setup in config files but I am not sure exactly >> what I should change. Can anyone point out why this error occurs and >> why kafka first tried to connect to ip and then server name? >> >> thanks! >> >> Jason >>