问题标签 [librdkafka]

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 投票
1 回答
1999 浏览

go - 在 Debian Docker 映像中使用 librdkafka 构建 Golang 应用程序?

使用 Alpine,Alpine 完全支持 librdkafka 的最新版本,我可以apk add在我的 Dockerfile 中执行以下操作:

现在,对于一个特定的项目,我需要制作 Debian 友好的二进制文件,它将在 Debian/Ubuntu 服务器上运行。

问题是:

  • 官方 Debian 存储库仅支持非常旧的 0.11.x 版本的 librdkafka。即使对于包括 backports repos 在内的伸展和破坏者也是如此。他们没有更新的版本。
  • 官方的 Confluent 存储库仅支持 Debian 8 (jessie) 上的 librdkafka。由于 libssl 版本不兼容,它们在 Debian 9 (stretch) 或 10 (buster) 上根本不支持 librdkafka。
  • 官方的 golang 镜像只支持 Debian 9 (stretch) 和 10 (buster)。他们不支持 Debian 8 (Jessie)。

我的选择:

  • 使用不需要在系统级别安装 librdkafka 的 Golang Kafka 客户端的开发分支。如果它稳定并被推荐,这将是惊人的。
  • 在 Debian 9/10 上手动安装/构建 librdkafka。
  • 获取 Debian 8 golang 映像?
  • 我可以从 Alpine 进行 Debian 目标构建吗?我怀疑没有,但值得一问。

推荐的解决方案是什么?

0 投票
1 回答
2381 浏览

apache-kafka - Kafka:使用“SASL_PLAINTEXT”或“PLAINTEXT”协议时代理传输失败

我正在尝试使用“SASL_PLAINTEXT” PLAINTEXT”连接融合的 Kafka 代理,但我收到此错误代理传输失败。但是,它适用于“SASL_SSL”协议,但不适用于任何其他安全协议。

这是我的代码。

知道我在做什么错吗?在这里与经纪人联系。我也在 Heroku 服务器上部署了这段代码,但它不工作

0 投票
1 回答
4775 浏览

apache-kafka - Kafka 偏移管理:enable.auto.commit 与 enable.auto.offset.store

默认情况下,Kafka Consumer 会定期提交当前的偏移量,除非通过禁用将其关闭enable.auto.commit。根据文档,您将负责自己提交偏移量。所以当我想要手动控制时,这似乎是要走的路,但是文档还提到了存储的偏移量,如果你想要手动控制,你应该禁用enable.auto.offset.store并使用rd_kafka_offsets_store()并保持自动提交不变。

有人可以解释为什么首选后一种方法吗?禁用自动提交应该具有完全相同的效果吗?

0 投票
1 回答
844 浏览

c - librdkafka 消费者没有收到来自代理的消息

我使用 librdkafka 库用 C 语言编写了 kafka 消费者和生产者。Kafka 代理版本为 kafka_2.12-2.3.0。Producer 正在成功生成消息,并且 dr_msg_cb 函数确认成功传递。但是,消费者没有收到来自代理的消息。有人可以帮助进一步调试吗?

我可以看到从消费者到代理的 TCP 连接已建立。但是 TCPdump 显示代理没有向消费者发送任何数据。我在消费者代码上启用了调试,下面是消息。

消费者代码如下所示。

我期望 msg_consume() 将被调用,因为生产者定期发布数据。我不确定以下日志消息是否是问题的根源。

“[2019 年 11 月 8 日 19:18:09.791668295:180:E:logger:1741] TID 08 : [LOG_TRACE]:RDKAFKA-7-LEADER: rdkafka#consumer-2: [thrd:ssl://10.0.0.1:9092 /bootstrap]: ssl://10.0.0.1:9092/1: 将 0 个分区映射到代理”

0 投票
1 回答
944 浏览

go - 如何在 confluent-kafka-go 中创建具有多个消费者的消费者组?

由于我是 Go 和 kafka 的新手,我需要使用 confluent-kafka-go 模块来实现消费者组。谁能帮我吗?

提前致谢

0 投票
0 回答
208 浏览

apache-kafka - librdkafka 生产者的内部队列——它们是如何工作的?

我有一些关于使用 librdkafka 的 GoLang Kafka 生产者的问题 - 这些是基于我在设置 debug: all 时在生产者日志中看到的日志。一旦重新缓存了批处理阈值或超过了 linger.ms,生产者就会花费一些时间来构建消息集。然而,几乎一直发生的事情是 - 消息从分区队列移动到 xmit 队列。我试图获取一些关于它的文档,但找不到太多,所以想检查我是否可以在堆栈上获得一些帮助。我的问题如下 -

a) 应用程序是否产生写入分区特定队列的调用?

b) 每个分区是否有一个 xmit 队列和一个分区队列?

c) 是什么触发了从分区队列到 xmit 队列的传输?为什么我们需要两个队列?

d) 当 Kafka 生产者为一个分区创建消息集时——它是否会阻塞该分区的所有操作?(比如将消息从分区队列移动到 xmit 队列)?简而言之,在为一个分区构建消息集时,新消息是否可以潜入 xmit 队列?被封锁了吗?

e) 有多少线程用于创建消息集?是每个生产者一个还是每个分区一个?

0 投票
1 回答
213 浏览

ssl - LibrdKafka Producer 无法在 TLS 通信中与 KafkaBroker(Java) 通信

  • 我为 Java KafkaBroker 创建了 KeyStore,并为 librdKafka 创建了所需的证书,当这些组件尝试与 SSL/TLS 通信时,我遇到了错误。
  • 然后我做了一个 TCP 转储并分析了它。它给出以下输出。(librdkafka - 172.25.31.43,KafkaBroker- 172.25.31.42),

考虑第 4 行和第 6 行,它表明 librdkafka 通过 SSLv2 发送“Client Hello”,而 KafkaBroker 使用“TLSv1.2”发送 ack。

  • 为了验证生成的密钥,我厌倦了从 openssl s_client 连接,它的输出如下,

规格

librdkafka 版本:- 1.1.0 操作系统版本:- suse 11 SP2

  • OpenSSL 版本:-
  • 链接库
0 投票
0 回答
1370 浏览

librdkafka - Amazon linux:节点 rdkafka 设置不起作用

请在下面找到操作系统详细信息

我参考了以下参考并尝试了,但它不起作用

  1. https://github.com/Blizzard/node-rdkafka/issues/263
  2. https://github.com/ibm-messaging/event-streams-samples/blob/master/kafka-nodejs-console-sample/Dockerfile
  3. https://github.com/Blizzard/node-rdkafka/blob/master/examples/docker-alpine.md

我跑了下面的命令

yum install gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64 ca-certificates

npm install node-rdkafka-- 在输出下方查找

找到我的测试代码

找到以下错误,我得到


注意: 相同的代码适用于 Ubuntu 16。我们遵循以下步骤

0 投票
1 回答
953 浏览

go - 错误:配置属性“security.protocol”的值“sasl_ssl”无效)

尝试使用 golang 连接到 kafka 消费者( Centos 中的 kafka_2.11-2.0.0 )时,出现以下错误:

代码:

实现了 kafka 错误但没有用。

提前致谢

0 投票
1 回答
178 浏览

javascript - 有没有一种方法可以在使用 node-rdkafka 库生成消息时传递带有 header 的tenantId?

我正在为我的一个应用程序使用node-rdkafka库。所以我有一个要求在生成消息时通过标题传递tenantId 。我检查了文档,但没有得到我需要的东西,或者我可能遗漏了一些东西。那么有没有一种方法可以在使用 node-rdkafka 库生成消息时传递带有 headers 的tenantid?