Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Threaded View
Kafka >> mail # user >> can high-level consumer api provide the method getting messages with non-block?


Copy link to this message
-
Re: can high-level consumer api provide the method getting messages with non-block?
Using a timeout of >0 on the broker will throw a timeout on consumer.

/***********************
sent from my android...please pardon occasional typos as I respond @ the
speed of thought
************************/

On Mar 2, 2012 7:18 AM, <[EMAIL PROTECTED]> wrote:

hi:
    I use high-level consumer api to get message. But I want to use
non-block method. Below is the code:

      ConsumerConnector consumer  kafka.consumer.Consumer.createJavaConsumerConnector(consumerconfig);
   Map<String, Integer> topicCountMap = new HashMap<String, Integer>();
   topicCountMap.put("topic", new Integer(1));
   Map<String, List<KafkaMessageStream<Message>>> consumerMap consumer.createMessageStreams(topicCountMap);
   KafkaMessageStream<Message> stream =  consumerMap.get("topic").get(0);
   ConsumerIterator<Message> it = stream.iterator();
   while(it.hasNext())
   {
    ByteBuffer buffer = it.next().payload();
    byte [] bytes = new byte[buffer.remaining()];
    buffer.get(bytes);
    System.out.println(new String(bytes));
   }

The problem is that when there are no message,the program is blocked at
"it.hasNext()";But I want to break out.  Are there some methods?
Thanks!
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB