Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法将消息推送到apache kafka?_Java_Apache Kafka - Fatal编程技术网

Java 无法将消息推送到apache kafka?

Java 无法将消息推送到apache kafka?,java,apache-kafka,Java,Apache Kafka,我不熟悉卡夫卡,尝试运行一个示例ApacheJava生产者代码将数据推送到卡夫卡。我可以通过java创建新主题,但在推送时,我遇到了一个异常。代码如下: package kafkaTest; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Properties; import org.I0Itec.zkclient.ZkClient; impor

我不熟悉卡夫卡,尝试运行一个示例ApacheJava生产者代码将数据推送到卡夫卡。我可以通过java创建新主题,但在推送时,我遇到了一个异常。代码如下:

package kafkaTest;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Properties;

import org.I0Itec.zkclient.ZkClient;
import org.I0Itec.zkclient.serialize.BytesPushThroughSerializer;

import kafka.producer.KeyedMessage;
import kafka.producer.ProducerConfig;

public class HelloKafkaProducer {
final static String TOPIC = "test_kafka1";

public static void main(String[] argv){
    Properties properties = new Properties();
    properties.put("metadata.broker.list", "172.25.37.66:9092");
    ZkClient zkClient = new ZkClient("172.25.37.66:2181", 4000, 6000, new      BytesPushThroughSerializer());
    List<String> brokerList = zkClient.getChildren("/brokers/topics");
    for(int i=0;i<brokerList.size();i++){
        System.out.println(brokerList.get(i));
    }

   properties.put("zk.connect","172.25.37.66:2181");

    properties.put("serializer.class","kafka.serializer.StringEncoder");
    ProducerConfig producerConfig = new ProducerConfig(properties);

    kafka.javaapi.producer.Producer<String,String> producer = new kafka.javaapi.producer.Producer<String, String>(producerConfig);
    SimpleDateFormat sdf = new SimpleDateFormat();
    KeyedMessage<String, String> message =new KeyedMessage<String, String>(TOPIC,"Test message from java program " + sdf.format(new Date()));
    System.out.println(message);
    producer.send(message);
    /*Consumer consumerThread = new Consumer(TOPIC);
    consumerThread.start();*/
}
}
在控制台上,我看到
[2015-05-04 18:55:29959]信息关闭到/172.17.70.73的插座连接。(kafka.network.Processor)
每次运行程序时。我能够使用控制台推拉主题

我们将不胜感激。
谢谢。

如果是卡夫卡制作人,您不能连接到zookeeper。您必须连接到代理。为此,请使用以下属性

props.put("metadata.broker.list", "localhost:9092, broker1:9092");
在这里,我在您的案例中使用了localhost,它将是172.25.37.66

props.put("metadata.broker.list", "localhost:9092, broker1:9092");