2016-01-03 346 views
3

我嘗試使用帶有端口9092的0.9.0版的Kafka。 如果我使用telnet,我成功連接到此地址,但我無法使用Java API連接到Kafka服務器無法連接到kafka服務器

這裏是我的Java例子正是使用官方提供的文檔:

Properties props = new Properties(); 
props.put("bootstrap.servers", "192.168.174.128:9092"); 
props.put("acks", "all"); 
props.put("retries", 0); 
props.put("batch.size", 16384); 
props.put("linger.ms", 1); 
props.put("buffer.memory", 33554432); 
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 

Producer<String, String> producer = new KafkaProducer(props); 
for(int i = 1; i < 10; i++) { 
    producer.send(new ProducerRecord<String, String>("test", Integer.toString(i), Integer.toString(i))); 

} 

producer.close(); 

我用vmware虛擬機建立我的卡夫卡服務器和動物園管理員。我的虛擬機IP地址是192.168.174.128。我使用Kafka客戶端成功創建並使用消息。

這裏是例外完整的堆棧

2016-01-03 09:44:38.049 [kafka-producer-network-thread | producer-1] DEBUG [] [] Selector - Connection with localhost/127.0.0.1 disconnected 
java.net.ConnectException: Connection refused: no further information 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_51] 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) ~[na:1.7.0_51] 
    at org.apache.kafka.common.network.PlaintextTransportLayer.finishConnect(PlaintextTransportLayer.java:54) ~[kafka-clients-0.9.0.0.jar:na] 
    at org.apache.kafka.common.network.KafkaChannel.finishConnect(KafkaChannel.java:79) ~[kafka-clients-0.9.0.0.jar:na] 
    at org.apache.kafka.common.network.Selector.poll(Selector.java:274) ~[kafka-clients-0.9.0.0.jar:na] 
    at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:270) [kafka-clients-0.9.0.0.jar:na] 
    at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:216) [kafka-clients-0.9.0.0.jar:na] 
    at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:141) [kafka-clients-0.9.0.0.jar:na] 
    at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51] 
2016-01-03 09:44:38.049 [kafka-producer-network-thread | producer-1] DEBUG [] [] NetworkClient - Node 0 disconnected. 
2016-01-03 09:44:38.078 [kafka-producer-network-thread | producer-1] DEBUG [] [] NetworkClient - No node found. Trying previously-seen node with ID 0 
2016-01-03 09:44:38.078 [kafka-producer-network-thread | producer-1] DEBUG [] [] NetworkClient - Give up sending metadata request since no node is available 
2016-01-03 09:44:38.099 [kafka-producer-network-thread | producer-1] DEBUG [] [] NetworkClient - Initiating connection to node 0 at localhost:9092. 
2016-01-03 09:44:38.681 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name connections-closed:client-id-producer-1 
2016-01-03 09:44:38.681 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name connections-created:client-id-producer-1 
2016-01-03 09:44:38.681 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name bytes-sent-received:client-id-producer-1 
2016-01-03 09:44:38.681 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name bytes-received:client-id-producer-1 
2016-01-03 09:44:38.682 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name bytes-sent:client-id-producer-1 
2016-01-03 09:44:38.682 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name select-time:client-id-producer-1 
2016-01-03 09:44:38.682 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name io-time:client-id-producer-1 
2016-01-03 09:44:38.682 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name node--1.bytes-sent 
2016-01-03 09:44:38.683 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name node--1.bytes-received 
2016-01-03 09:44:38.683 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name node--1.latency 
2016-01-03 09:44:38.683 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name node-0.bytes-sent 
2016-01-03 09:44:38.683 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name node-0.bytes-received 
2016-01-03 09:44:38.683 [kafka-producer-network-thread | producer-1] DEBUG [] [] Metrics - Removed sensor with name node-0.latency 
2016-01-03 09:44:38.683 [kafka-producer-network-thread | producer-1] DEBUG [] [] Sender - Shutdown of Kafka producer I/O thread has completed. 
2016-01-03 09:44:38.683 [main] DEBUG [] [] KafkaProducer - The Kafka producer has closed. 
+0

當我替換自己的kafka代理的IP地址時,您的Java代碼運行良好,因此這似乎是網絡問題。您是否可以在可以成功遠程登錄的同一臺計算機上運行Java代碼?當你說你可以成功使用「kafka客戶端」時,你的意思是kafka-console-producer.sh腳本嗎? – palimpsestor

+0

是 在同一個虛擬機 我kafka-console-producer.sh和卡夫卡的服務器,但我的Java代碼內部沒有 運行此代碼對你罰款的意思是它的網絡問題 但我telnet卡夫卡施維雅succussful – perdonare

回答

7

我有這個問題。要解決這個問題,你應該取消註釋server.properties文件中的以下配置,並用你的動物園管理員的IP填充它。

advertised.host.name =動物園管理員IP

卡夫卡的文件說,這是配置

主機名發佈到動物園管理員,爲客戶使用

因爲在新的卡夫卡消費者(0.9)消費者向經紀人詢問動物園管理員IP。

9

這發生在我身上,由於不同的問題:

的0.10.1.0的Java API似乎不是與0.10.0.1服務器兼容。

我希望能解決別人的問題。

+0

有同樣的問題與0.10.1.0經紀人和0.10.1.0 apis,對你有好運? – Thanos

+0

我目前使用0.10.0.1堆棧,但如果要更新它,我會回覆。我希望能看到這個主題的其他人能夠幫助你。 – ssice