【发布时间】:2014-05-27 02:24:08
【问题描述】:
我打算使用 Kafka 将消息存储在队列中,并在特定队列中的消息数量达到某个限制(例如 1000)时获取消息。
当队列达到限制时,Kafka 服务器是否可以通过任何方式通知消费者?
【问题讨论】:
标签: apache-kafka
我打算使用 Kafka 将消息存储在队列中,并在特定队列中的消息数量达到某个限制(例如 1000)时获取消息。
当队列达到限制时,Kafka 服务器是否可以通过任何方式通知消费者?
【问题讨论】:
标签: apache-kafka
如果我理解您的问题,您正在尝试做的是在消费者延迟达到某个值时检索消息。我不知道有什么方法可以从您的 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
【讨论】: