Java 消费者关闭后是否可以访问?
每次运行Java 消费者关闭后是否可以访问?,java,apache-kafka,kafka-consumer-api,Java,Apache Kafka,Kafka Consumer Api,每次运行(consumer1.close())后,我都会关闭使用者,希望避免不必要的运行,直到我希望使用者再次运行。当我调用同一个消费者的run函数时,我确实希望它再次运行。但很明显,当我再次运行consumer1.poll()时,它会说它已关闭 是否有更好的方法处理消费者,使其仅在需要时运行?我也读过关于pause()和resume(),它在节约资源方面有多有效?每次启动您的消费者时,请确保使用相同的消费者组,以便您的消费者可以从关闭前留下的位置继续消费消息 一个定义良好的消费者不应该在其输
(consumer1.close())
后,我都会关闭使用者,希望避免不必要的运行,直到我希望使用者再次运行。当我调用同一个消费者的run函数时,我确实希望它再次运行。但很明显,当我再次运行consumer1.poll()时,它会说它已关闭
是否有更好的方法处理消费者,使其仅在需要时运行?我也读过关于
pause()
和resume()
,它在节约资源方面有多有效?每次启动您的消费者时,请确保使用相同的消费者组,以便您的消费者可以从关闭前留下的位置继续消费消息
一个定义良好的消费者不应该在其输入耗尽时自行暂停吗?为什么要显式地停止/暂停它?@TreffnonX只有当一组消息发送到主题并在消费者收到消息后立即关闭时,我才运行消费者。当下一组消息发送到某个主题时,我确实希望访问同一个消费者以接收消息,而不是每次都创建一个新的消费者。谢谢您的回答。我已经包括在内了。我想知道是否有一种方法可以访问同一个消费者,而不是每次都创建一个新的消费者。pause()/resume()是唯一的方法吗?@ubuntu\u noob是的。在这种情况下,您可以使用
resume()
和pause()
:
props.put("group.id", "my-consumer-group-id");
props.put("auto.offset.reset", "latest");