2016-07-08 15 views
0

私はKafkaを使用しています。これは私のコードです。ここで私はkafkaサーバーにメッセージを送信したい、トピック名は "message1"というメッセージで "west"です。トピックに送信メッセージが表示されていないのにエラーは表示されませんここに?Javaコードでkafkaトピックにメッセージを送信できません

class SimpleProducer { 

    public static void main(String[] args) throws Exception{  
    Properties props = new Properties(); 
    props.put("bootstrap.servers","172.xxxxxxxxx:9092"); 
    props.put("serializer.class", "kafka.serializer.DefaultEncoder"); 
    props.put("acks", "1"); 
    props.put("retries", 1); 
    props.put("batch.size", 16384); 
    props.put("linger.ms", 0); 
    props.put("client.id", "foo"); 
    props.put("buffer.memory", 33554432); 
    props.put("timeout.ms", "500"); 
    props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 
    props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 
    props.setProperty(ProducerConfig.MAX_BLOCK_MS_CONFIG, "500"); 
    props.setProperty(ProducerConfig.RETRY_BACKOFF_MS_CONFIG, "100"); 

    System.out.println("ready to send msg"); 

    try { 
     Producer<String, String> producer = new KafkaProducer<String, String>(props); 

     producer.send(new ProducerRecord<String, String>("west","message1")); 

     System.out.println("Message sent successfully"); 
     producer.close(); 
    } 
    catch(Exception e) 
    { 
     System.out.println("Messgae doesn't sent successfully"); 
     e.printStackTrace(); 

    } 
    } 
} 
+0

ブローカーに書き込まれ、コミットされたメッセージをどのように確認していますか? –

+0

現在、私はいくつかの特定のトピックにメッセージを送り、以下のコマンドでそれをチェックしています: - bin/kafka-console-consumer.sh --zookeeper localhost:2181 - topic topic-name --from-はじめに – Sagar

+0

私はJavaからトピックへのメッセージを得るためにカスタムプロデューサーを書いています。 表示されたメインを呼び出すと、カフカのトピックにメッセージが表示されたり、エラーメッセージが表示されたりしません。 誰もメッセージがトピックに届かない理由を知っていますか? – Sagar

答えて

0

メッセージの送信に使用したAPIは非同期です。 2つの引数を持つsend()の形式を使用します。 2番目の引数はコールバックで、送信が本当にうまくいったか、どこかでエラーがあったかどうかを確認できます。

関連する問題