我计划使用Kafka在队列中存储消息,并在特定队列中的消息数达到某个限制(例如1000)时获取消息。
当队列达到极限时,Kafka服务器是否可以通知消费者?
答案 0 :(得分:2)
如果我理解您的问题,那么您尝试做的就是在消费者滞后达到某个值时检索消息。我不知道从Kafka群集接收通知的任何方式。但是,您应该能够定期运行ConsumerOffsetChecker来检查延迟。以下示例来自文档:
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zkconnect localhost:2181 --group test
Group Topic Pid Offset logSize Lag Owner
my-group my-topic 0 0 0 0 test_jkreps-mn-1394154511599-60744496-0
my-group my-topic 1 0 0 0 test_jkreps-mn-1394154521217-1a0be913-0
http://kafka.apache.org/documentation.html#basic_ops_consumer_lag
您也可以通过JMX尝试从Kakfa获取此信息:
https://cwiki.apache.org/confluence/display/KAFKA/Operations#Operations-Monitoring