[ https://issues.apache.org/jira/browse/KAFKA-3007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15062931#comment-15062931 ]
Jason Gustafson commented on KAFKA-3007: ---------------------------------------- The internal method pollOnce is probably poorly named. Its intent is to poll IO one time, not fetch one record. In the current implementation, poll() returns immediately as soon as any records are available (it may be one, it may be more), so I'm not sure why you're concerned about messages backing up. If you want poll() to return before messages have become available, then you can use the timeout parameter. The only limitation with this is that the client ignores the timeout if it is in the middle of a rebalance. > new Consumer should expose mechanism to fetch single message > ------------------------------------------------------------- > > Key: KAFKA-3007 > URL: https://issues.apache.org/jira/browse/KAFKA-3007 > Project: Kafka > Issue Type: Improvement > Components: consumer > Affects Versions: 0.9.0.0 > Reporter: aarti gupta > Assignee: Neha Narkhede > > Currently, the consumer.poll(timeout) > returns all messages that have not been acked since the last fetch > The only way to process a single message, is to throw away all but the first > message in the list > This would mean we are required to fetch all messages into memory, and this > coupled with the client being not thread-safe, (i.e. we cannot use a > different thread to ack messages, makes it hard to consume messages when the > order of message arrival is important, and a large number of messages are > pending to be consumed) -- This message was sent by Atlassian JIRA (v6.3.4#6332)