kafka中consumer对于消息的消费是阻塞的。
ConsumerConnector connector;
Map<String, Integer> topiccont;
......
Map<String,List<KafkaStream<String, String>>> streams = connector.creatMessageStreams(topiccont);
/**
for(KafkaStream<String, String> ks : stream){
ConsumerIterator<String, String> it = ks.iterator();
}**/
ConsumerIterator<String, String> its = stream.gettopic("test").iterator();
while(its.hasNext()){
System.out.println("receive:" + new String(its.next().message()));
}
consumer是阻塞消费,当没有消息来时,its.hasNext()被阻塞,当有消息来时,.hasNext()返回true;