Kafka 消费者应该在生产者之前启动吗?

Posted

技术标签:

【中文标题】Kafka 消费者应该在生产者之前启动吗?【英文标题】:Should Kafka consumers be started before producers? 【发布时间】:2018-12-13 11:56:46 【问题描述】:

当我有一个 kafka 控制台生产者消息产生一些消息然后启动一个消费者时,我没有收到这些消息。

但是我在消费者启动后收到生产者生成的消息。

--from-start 似乎给出了所有消息,包括被消费的消息。

请在控制台级别和 java 客户端示例上帮助我解决这个问题,以便首先启动生产者并通过启动消费者来消费。

【问题讨论】:

我们需要查看您的代码以帮助您.. 【参考方案1】:

Kafka 在可配置的时间内存储消息。默认为一周。消费者不需要“可用”来接收消息,但他们确实需要知道应该从哪里开始阅读

控制台使用者具有查看所有分区的最新偏移量的默认选项。因此,如果您不积极生产数据,您将看不到任何消费者。您可以为控制台消费者或 Java 客户端指定 group 标志,这就是跟踪在 Kafka 协议中读取的偏移量以及如果您在组中停止该消费者将从哪里恢复读取请求

否则,我认为您只能提供一个偏移量以及一个要从中消耗的分区

【讨论】:

以上是关于Kafka 消费者应该在生产者之前启动吗?的主要内容,如果未能解决你的问题,请参考以下文章

八、Kafka生产者调优

您需要在生产者和消费者文件中调用 shmat 和 shmget 吗?

通过 Observable(RxJava) 使用 Kafka

kafka入门介绍

Kafka 设计与原理详解

我们应该使用带有信号量的互斥量来进行正确的同步并防止竞争条件吗?