问题标签 [kafkacat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
115 浏览

amazon-web-services - 您可以将“kafkacat”与 AWS IAM 访问控制一起使用吗

我正在尝试使用 IAM 访问策略对 MSK 进行授权。我试图关注https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html#configure-clients-for-iam-access-control

好像kafkacat不支持 我得到的错误是:No such configuration property: "sasl.jaas.config "。我错过了什么吗?

0 投票
1 回答
55 浏览

ssl - Kafka 分区领导者 -1 仅通过 SSL

我正在努力通过 SSL 移动我们所有的 Kafka 流量。我们在每个区域有两个集群。

使用 Kafka 版本 2.7.0。

除一个集群外,所有区域和所有集群都可以通过 SSL 正常工作。

在其他工具中,我kafkacat用来探测集群。

kafkacat -L通过明文连接对该集群执行时,它会列出所有代理、主题和分区,并显示每个分区的领导者:

通过 SSL 执行相同的命令时,kafkacat发现:

  1. 0 经纪人
  2. 列出主题和分区,但没有领导者

针对该区域中的其他集群的相同命令,无论是通过明文还是通过 SSL,都可以完美运行。

inter.broker.protocol与 Zookeeper 集群的通信是 PLAINTEXT 。SSL 目前仅用于与 Kafka 客户端通信。尚未使用身份验证,并且客户端不验证服务器的证书。

集群是使用 Packer for AMI 和 Terraform 进行部署构建的,这一切都是自动的。我已经三重检查了这个集群的配置与其他集群的配置没有什么不同。

使用的证书由 Let's Encrypt 颁发。我什至尝试从该区域的其他集群复制证书,效果很好,但我仍然得到相同的结果。

除了主机名之外,使用 SSL 的集群和不使用 SSL 的集群之间的配置是相同的。

还有什么可能导致这种奇怪的行为?

编辑:更多调查显示该集群上 Kafka 代理的 Zookeeper 记录错过了 SSL 映射:

与“健康”集群相反:

Zookeeper 记录在我们停止代理时被删除,但在我们启动它时出现相同的错误内容。

经纪人的server.properties文件过去没有这一listener.security.protocol行,因为我们想要默认值,但即使像这样取消注释也没有什么区别:

所以现在的问题是——Kafka 从哪里得到它放在 Zookeeper 记录中的信息?

0 投票
0 回答
203 浏览

apache-kafka - 尽管使用 -o 开头,但与 Kafkacat 一起消费没有显示任何消息

我正在尝试使用以下命令从使用 Kafkacat 的主题中消费:

该命令的响应是:

现在 - 标志 -o 开始不应该向我显示所有消息吗?我试图了解如何在没有成功的情况下从第一个偏移量开始

0 投票
0 回答
94 浏览

apache-kafka - kafkacat 使用指定范围记录的语法

这个kcat repo有一个示例,说明如何读取(=2000)Kafka 主题中的最后 N 条记录(syslog在本例中):

该参数-o从主题的结尾偏移,并-e指示直到主题的结尾。如果我想从一个特定位置流式传输Nth到另一个位置(N + k)th,而不知道主题的完整长度,那么语法是什么?

我正在尝试对正在生成的数据进行某种随机完整性检查,其中数据太大而无法全部消耗。我希望通过随机使用一系列数据并验证它来做到这一点。因此,这个问题。

0 投票
1 回答
83 浏览

apache-kafka - 如何将json文件中的数据加载到kafka中

我有一个mydata.json如下文件:

上面的示例文件包含两个元素:Student 01Student 02. 我正在尝试将其加载到 kafka 主题student_data中,以便每个学生(即Student 01Student 02)成为单独的消息。

我尝试使用下面的 kafkacat 命令,但它将整个文件加载到有关该主题的单个消息中。

有没有办法将此添加到主题中,以便每个条目都是单独的消息?...无需将每条消息分成单独的文件。

0 投票
2 回答
87 浏览

docker - 运行 `kcat` 时,`exec.Command()` 不产生输出

我需要包装kcat一个 Go 函数来读取一系列主题消息,因此考虑使用exec.Command()如下:

但是,这仅返回输出的第一行kcat

(注意:我在 docker 容器中运行它,但我认为这没有什么不同)

但是,当直接从 CLI 运行时,这可以正常工作:

在 Gokcat中中断的命令似乎有一些独特之处。exec.Command()

问题:

  • 有没有其他方法可以在 Go 中达到相同的效果?
  • 这可能是我使用方式的问题吗exec.Command()

理想情况下,我可以在这种情况下使用该kcat命令,因为我想避免在这种情况下使用 segmentioskafka-go库。

[编辑]

  • 分离论点(如@onecricketeer 所建议):

结果(同样的错误):

  • 使用 BASH 作为外壳(由 maxm 建议):

结果相同,即只报告了 kcat 输出的第一行:

[编辑]

注意:但是,当我使用 Python 的 shell 执行机制时,它运行良好,这让我想知道 Gos shell 处理功能是否存在缺陷:

结果: