我是Kafka的新手。我已经在Mac上使用自制软件安装了kafka和zookeeper,并且正在使用the quickstart guide。
我已经可以使用以下命令和STDIN将消息推送到Kafka上
kafka-console-producer --broker-list localhost:9092 --topic test
我可以使用来读东西
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning
我不清楚我如何使用偏移量。据我了解,添加到主题的每条消息都将具有一个数字增量偏移值。但是,如果我尝试做这样的事情
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --offset 1
我得到一个非零的状态代码,并且没有显示任何消息(通常的帮助/使用信息除外)
我也无法使用最新或最早关键字
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --offset earliest
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --offset latest
以上两种方法都还返回非零状态代码。
我是否从根本上误解了补偿?如果不是,是否有办法列出所有带有 偏移量的消息?最后---offset
的{{1}}标志最简单的例子是什么?
答案 0 :(得分:2)
kafkacat
是一个不错的命令行工具,可以显示每条消息的偏移量。
kafkacat -b localhost:9092 -C -t test -f 'Topic %t [%p] at offset %o: key %k: %s\n'
它将打印出类似的内容
Topic test [5] at offset 111: key "0171bf8102007900e33": {"Message": "1"}
Topic test [2] at offset 123: key "070021b0f001f614c1b": {"Message": "2"}
答案 1 :(得分:2)
由于 GetOffsetShell
只有 works with PLAINTEXT
,所以对很多人来说可能不方便。
好消息是,基于 9099 PR 中的通信,包括 print.offset
在内的其他属性似乎已进入 2.7。
现在必须可以使用 print.offset=true
!
答案 2 :(得分:1)
如果您在给出偏移量值后查看输出,则表明您需要指定一个分区(在帮助部分的顶部)
主题细分为多个分区,偏移量1只能存在于潜在的数百个分区中,因此必须指定
关于显示偏移量,查找GetOffsetShell
命令语法
答案 3 :(得分:0)
使用偏移量时需要分区
<?php
if(!require_once('conn.php'))
{
die("Error");
}
$upit = "SELECT * FROM artikal INNER JOIN category ON id_category = category.id
INNER JOIN store ON id_store = store.id
" ;
$rezultat = $conn->query($upit);
?>
<?php while($red = $rezultat->fetch_assoc()) { ?>
<tr>
<td><?= $red['product_name']; ?></td>
<td><?= $red['id_category']; ?></td>
<td><?= $red['id_store']; ?></td>
<td><?= $red['regular_price']; ?>$</td>
<td><?= $red['sale_price']; ?>$</td>
<td>**percentage discount I need here**</td>
</tr>
<?php } ?>
答案 4 :(得分:0)
你必须像这样在上面的命令中给出分区值和偏移量
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --partition 0 --offset 1