KAFKA Java消费者无法正常工作

时间:2017-02-12 12:56:18

标签: java apache-kafka consumer

我无法让我的java消费者在本地主机上工作。控制台用户工作正常。 以下是我的消费者代码。

public class TestConsumer {    public static void main(String [] args)抛出异常{

      //Assign topicName to string variable
      String topicName = "test";//args[0].toString();
      Properties props = new Properties();
      props.put("bootstrap.servers", "localhost: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
         <String, String>(props);

      for(int i = 0; i < 10; i++)
         producer.send(new ProducerRecord<String, String>(topicName, 
            Integer.toString(i), Integer.toString(i)));
               System.out.println("Message sent successfully");
               producer.close();
        }

} }

Java生产者在同一主题上工作正常。

public class TestProducer {     public static void main(String [] args)抛出异常{

{{1}}

}

1 个答案:

答案 0 :(得分:0)

我有另一个消费者实现,并且已经开始工作了。我想我所投入的属性是不正确的。公共类KafkaConsumer {     private ConsumerConnector consumerConnector = null;     private final String topic =“test”;

public void initialize() {
      Properties props = new Properties();
      props.put("zookeeper.connect", "localhost:2181");
      props.put("group.id", "testgroup");
      props.put("zookeeper.session.timeout.ms", "400");
      props.put("zookeeper.sync.time.ms", "300");
      props.put("auto.commit.interval.ms", "1000");
      ConsumerConfig conConfig = new ConsumerConfig(props);
      consumerConnector = Consumer.createJavaConsumerConnector(conConfig);
}

public void consume() {
      //Key = topic name, Value = No. of threads for topic
      Map<String, Integer> topicCount = new HashMap<String, Integer>();       
      topicCount.put(topic, new Integer(1));

      //ConsumerConnector creates the message stream for each topic
      Map<String, List<KafkaStream<byte[], byte[]>>> consumerStreams =   consumerConnector.createMessageStreams(topicCount);         

      // Get Kafka stream for topic 'zinguplife'
      List<KafkaStream<byte[], byte[]>> kStreamList = consumerStreams.get(topic);
      // Iterate stream using ConsumerIterator
      for (final KafkaStream<byte[], byte[]> kStreams : kStreamList) {
             ConsumerIterator<byte[], byte[]> consumerIte = kStreams.iterator();

             while (consumerIte.hasNext())
                    System.out.println("Message consumed from topic    [" + topic + "] : "  + new String(consumerIte.next().message()));              
      }
      //Shutdown the consumer connector
      if (consumerConnector != null)   consumerConnector.shutdown();          
}

public static void main(String[] args) throws InterruptedException {
      KafkaConsumer kafkaConsumer = new KafkaConsumer();
      // Configure Kafka consumer
      kafkaConsumer.initialize();
      // Start consumption
      kafkaConsumer.consume();
}