2016-04-05 28 views
1

我正在使用卡夫卡0.9。我想知道是否有任何方法通过了解分区和偏移量从其主题中检索已处理的消息。例如,消费者正在消费分区1和偏移10处的消息。并且我想在相同分区和偏移5处获得消息。通过了解卡夫卡的分区和偏移量来获取消息

我能想到的一种方法是将偏移重置为5并消耗一条消息。但是poll()方法只能返回一批消息。所以我必须先听取第一条信息,不要理睬其他人。处理完消息后,偏移被重置。

我认为这会奏效。但仍然想知道是否有其他优雅的方式。

+0

'但是poll()方法只能一批messages'返回 - >如果你不设置batch.size 0 – C4stor

回答

2

Kafka设计用于从磁盘读取长条数据而不移动磁盘磁头 - 换句话说,它优化为使用线性读取。忽略必须从磁盘读取的数据(可能通过网络服务)的整个数据块似乎效率不高,但实际上使磁盘头跳转很多的效率低得多。查看卡夫卡的设计理念,了解它的使用方法,here

换句话说,你的方法可能有效。但是你更像是有人使用关系数据库而不是消息系统。

+0

谢谢!我完全同意。卡夫卡是消息系统,在消息检索中效率不高。由于我在这种情况下需要重新调用一些没有外部存储支持的消息,因此我必须找出正确的方法。这种情况不会经常发生,所以我不担心效率。 – sudododo

相关问题