Java 无法使用kafka Producer API与kafka服务器通信

Java 无法使用kafka Producer API与kafka服务器通信,java,apache-kafka,kafka-consumer-api,Java,Apache Kafka,Kafka Consumer Api,我在单个节点上设置了kafka,并启动了zookeeper和kafka服务器。我在控制台上测试了内部生产者和消费者,效果很好。但当我在控制台和自定义生产者上运行内部kafka消费者时,它不起作用 下面是我的制作人课 Properties props = new Properties(); props.put("metadata.broker.list", "xx.xx.xx.xx:9092"); props.put("serializer.class", "kafka.

我在单个节点上设置了kafka,并启动了zookeeper和kafka服务器。我在控制台上测试了内部生产者和消费者,效果很好。但当我在控制台和自定义生产者上运行内部kafka消费者时,它不起作用

下面是我的制作人课

    Properties props = new Properties();

    props.put("metadata.broker.list", "xx.xx.xx.xx:9092");
    props.put("serializer.class", "kafka.serializer.StringEncoder");
    props.put("partitioner.class", "com.example.producer.SimplePartitioner");
    props.put("request.required.acks", "1");

    ProducerConfig config = new ProducerConfig(props);

    Producer<String, String> producer = new Producer<String, String>(config);
    KeyedMessage<String, String> data = new KeyedMessage<String, String>(
            "mails", "xxxx");
    producer.send(data);

我试图从eclipse中的生产者类从外部VM连接到kafka服务器。
我不得不在kafka的config/中的producer.properties中用ip地址替换localhost。

你能试着对
props.put(“partitioner.class”,“com.example.producer.SimplePartitioner”)
部分也在/etc/hosts文件中插入ip吗
java.nio.channels.ClosedChannelException
at kafka.network.BlockingChannel.send(BlockingChannel.scala:100)
at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:73)
at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:72)
at kafka.producer.SyncProducer.send(SyncProducer.scala:113)
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:58)
at kafka.producer.BrokerPartitionInfo.updateInfo(BrokerPartitionInfo.scala:82)
at kafka.producer.async.DefaultEventHandler$$anonfun$handle$2.apply$mcV$sp(DefaultEventHandler.scala:78)
at kafka.utils.Utils$.swallow(Utils.scala:172)
at kafka.utils.Logging$class.swallowError(Logging.scala:106)
at kafka.utils.Utils$.swallowError(Utils.scala:45)
at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:78)
at kafka.producer.Producer.send(Producer.scala:77)
at kafka.javaapi.producer.Producer.send(Producer.scala:33)