我可以这样做:
./bin/kafka-avro-console-consumer --zookeeper 10.0.0.225:2181/kafka
--topic myTopic --property schema.registry.url=http://10.0.0.100:8081
--from-beginning
但是我的消息太多了。我宁愿只得到最后的N个。我怎么能用kafka console consumer做到这一点?
答案 0 :(得分:7)
如果您想坚持使用捆绑的二进制文件,则需要使用简单的使用者shell:
bin/kafka-simple-consumer-shell.sh --broker-list mybroker:9092 --topic
mytopic --partition mypartition --offset myoffset
我建议kt;它更快,更轻,并有更好的选择。
答案 1 :(得分:1)
我刚开始使用Kafka,所以可能有更好的方法来执行此操作,但它会打印[ sum(CDF(:).cdfSR(1))/895, sum(CDF(:).cdfSR(2))/895, ..., sum(CDF(:).cdfSR(48))/895 ]
返回的第一个分区中的最后10条消息,然后继续输出新消息进来。
kafka-run-class kafka.tools.GetOffsetShell
将上面的offsets=$(kafka-run-class kafka.tools.GetOffsetShell \
--broker-list $BROKER_1:9092,$BROKER_2:9092 --topic my_topic)
kafka-avro-console-consumer --bootstrap-server $BROKER_1:9092 \
--topic my_topic \
--partition $(echo $offsets | awk -F':' '{print $2}') \
--offset $(($(echo $offsets | awk -F':| ' '{print $3}') - 10)) \
--property schema.registry.url=http://$WORKER_1:8081
替换为要打印的所需数量的消息。
答案 2 :(得分:0)
首先获取所有分区中的偏移值:
kafka-run-class.bat kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic topicName
topicName:0:15 topicName:1:16 topicName:2:10
现在从特定主题和分区获取N条消息。 我将偏移号设为10,因为我只想从分区0读取5条消息。
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic topicName--offset 10 --partition 0
它将从分区0打印最后5条消息。
请记住,Kafka不保证分区之间的消息顺序。它确实提供了分区内的排序。
答案 3 :(得分:0)
您还可以使用kafkacat
工具,例如here。
这是一个非常强大且快速的工具,可以从控制台从Kafka中读取数据,并且是开源的:https://github.com/edenhill/kafkacat。
GitHub上提供了许多示例,下面显示了一个示例来读取主题“ mytopic”的分区0中的最后n条消息:
kafkacat -C -b mybroker -t mytopic -p 0 -o -2000
答案 4 :(得分:-1)
./ bin / kafka-console-consumer.sh --bootstrap-server kafka-broker.service-pe-test.consul.c-test.ost.cloud.internal:9093 --max-messages 1-组basan_PERF_console --consumer.config config-stage.properties --partition 1 --offset 14677669 --topic order-demandh
这是一次从特定的偏移量中检索一条消息的方法
答案 5 :(得分:-1)
我可以确认max-messages
参数可以传递给kafka-console-consumer
和kafka-avro-console-consumer
cli工具。
由于我不得不单独查看很多此类内容,因此以下示例使用kafka-avro-console-consumer
来使用已启用SSL的主题(配置了架构注册表)使用前10条Avro记录,并打印字符串键和记录。
./kafka-avro-console-consumer \
--bootstrap-server something.com:9093,something2.com:9093 \
--consumer.config /path/to/client-ssl.properties \
--property schema.registry.url=http://some-schema-registry.com \
--property print.key=true \
--key-deserializer=org.apache.kafka.common.serialization.StringDeserializer \
--from-beginning \
--max-messages 10 \
--topic some-topic-name