java Kafka生产者错误 [英] java Kafka producer error

查看:39
本文介绍了java Kafka生产者错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我做了 kafka java 生产者.但控制台说错误.kafka 服务器在 aws 上.制作人在我的 Mac 上.然而 kara 服务器是可访问的.当我从生产者发送消息时,kafka 服务器显示已接受连接..".什么问题?

I made kafka java producer. but console said error. kafka server is on aws. and producer is on my mac. and yet kara server is reachable. When i send message from producer, kafka server shows "Accepted connection .. ". What is problem?

1 [main] INFO kafka.utils.VerifiableProperties - Verifying properties
28 [main] INFO kafka.utils.VerifiableProperties - Property      metadata.broker.list is overridden to xxxxxx:9092
28 [main] INFO kafka.utils.VerifiableProperties - Property serializer.class is overridden to kafka.serializer.StringEncoder
137 [main] INFO kafka.client.ClientUtils$ - Fetching metadata from broker id:0,host: xxxxxx,port:9092 with correlation id 0 for 1 topic(s) Set(words_topic)
189 [main] ERROR kafka.producer.SyncProducer - Producer connection to xxxxxx:9092 unsuccessful
198 [main] WARN kafka.client.ClientUtils$ - Fetching topic metadata with correlation id 0 for topics [Set(words_topic)] from broker [id:0,host: xxxxxx,port:9092] failed
199 [main] ERROR kafka.utils.Utils$ - fetching topic metadata for topics [Set(words_topic)] from broker [ArrayBuffer(id:0,host: xxxxxx,port:9092)] failed

这是 kafka 控制台

And It's kafka console

[2015-01-27 05:23:33,767] DEBUG Accepted connection from /xxxxx on /xxxx:9092. sendBufferSize [actual|requested]: [212992|1048576] recvBufferSize [actual|requested]: [212992|1048576] (kafka.network.Acceptor)
[2015-01-27 05:23:33,767] DEBUG Processor 1 listening to new connection from /xxxx:65307 (kafka.network.Processor)
[2015-01-27 05:23:33,872] INFO Closing socket connection to /xxxx. (kafka.network.Processor)
[2015-01-27 05:23:33,873] DEBUG Closing connection from /xxxx:65307 (kafka.network.Processor)

这是我的代码.

    Properties props = new Properties();
    props.put("metadata.broker.list", "?????:9092");
    props.put("serializer.class", "kafka.serializer.StringEncoder");
    ProducerConfig config = new ProducerConfig(props);
    Producer<String, String> producer = new Producer<String, String>(config);

    // Now we break each word from the paragraph
        for (String word :
            METAMORPHOSIS_OPENING_PARA.split("\\s")) {
        // Create message to be sent to "words_topic" topic with the word
        KeyedMessage<String, String> data =
                new KeyedMessage<String, String>
                        ("words_topic", word);
        // Send the message
        producer.send(data);
    }
    System.out.println("Produced data");
    // close the producer
    producer.close();

}

// First paragraph from Franz Kafka's Metamorphosis
private static String METAMORPHOSIS_OPENING_PARA =
        "One morning, when Gregor Samsa woke from troubled dreams, "
                + "he found himself transformed in his bed into a horrible "
                + "vermin. He lay on his armour-like back, and if he lifted "
                + "his head a little he could see his brown belly, slightly "
                + "domed and divided by arches into stiff sections.";

推荐答案

我解决了

将 Kafka broker 的 server.properties 上的 'advertised.host.name' 设置为服务器的 realIP(与生产者的 'metadata.broker.list' 属性相同)

Set 'advertised.host.name' on server.properties of Kafka broker to server's realIP(same to producer's 'metadata.broker.list' property)

参考:https://issues.apache.org/jira/browse/KAFKA-1092

这篇关于java Kafka生产者错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆