问题标签 [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.
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 目标构建吗?我怀疑没有,但值得一问。
推荐的解决方案是什么?
apache-kafka - Kafka:使用“SASL_PLAINTEXT”或“PLAINTEXT”协议时代理传输失败
我正在尝试使用“SASL_PLAINTEXT”或“ PLAINTEXT”连接融合的 Kafka 代理,但我收到此错误代理传输失败。但是,它适用于“SASL_SSL”协议,但不适用于任何其他安全协议。
这是我的代码。
知道我在做什么错吗?在这里与经纪人联系。我也在 Heroku 服务器上部署了这段代码,但它不工作
apache-kafka - Kafka 偏移管理:enable.auto.commit 与 enable.auto.offset.store
默认情况下,Kafka Consumer 会定期提交当前的偏移量,除非通过禁用将其关闭enable.auto.commit
。根据文档,您将负责自己提交偏移量。所以当我想要手动控制时,这似乎是要走的路,但是文档还提到了存储的偏移量,如果你想要手动控制,你应该禁用enable.auto.offset.store
并使用rd_kafka_offsets_store()
并保持自动提交不变。
有人可以解释为什么首选后一种方法吗?禁用自动提交应该具有完全相同的效果吗?
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 个分区映射到代理”
go - 如何在 confluent-kafka-go 中创建具有多个消费者的消费者组?
由于我是 Go 和 kafka 的新手,我需要使用 confluent-kafka-go 模块来实现消费者组。谁能帮我吗?
提前致谢
apache-kafka - librdkafka 生产者的内部队列——它们是如何工作的?
我有一些关于使用 librdkafka 的 GoLang Kafka 生产者的问题 - 这些是基于我在设置 debug: all 时在生产者日志中看到的日志。一旦重新缓存了批处理阈值或超过了 linger.ms,生产者就会花费一些时间来构建消息集。然而,几乎一直发生的事情是 - 消息从分区队列移动到 xmit 队列。我试图获取一些关于它的文档,但找不到太多,所以想检查我是否可以在堆栈上获得一些帮助。我的问题如下 -
a) 应用程序是否产生写入分区特定队列的调用?
b) 每个分区是否有一个 xmit 队列和一个分区队列?
c) 是什么触发了从分区队列到 xmit 队列的传输?为什么我们需要两个队列?
d) 当 Kafka 生产者为一个分区创建消息集时——它是否会阻塞该分区的所有操作?(比如将消息从分区队列移动到 xmit 队列)?简而言之,在为一个分区构建消息集时,新消息是否可以潜入 xmit 队列?被封锁了吗?
e) 有多少线程用于创建消息集?是每个生产者一个还是每个分区一个?
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 版本:-
- 链接库
librdkafka - Amazon linux:节点 rdkafka 设置不起作用
请在下面找到操作系统详细信息
我参考了以下参考并尝试了,但它不起作用
- https://github.com/Blizzard/node-rdkafka/issues/263
- https://github.com/ibm-messaging/event-streams-samples/blob/master/kafka-nodejs-console-sample/Dockerfile
- 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。我们遵循以下步骤
javascript - 有没有一种方法可以在使用 node-rdkafka 库生成消息时传递带有 header 的tenantId?
我正在为我的一个应用程序使用node-rdkafka库。所以我有一个要求在生成消息时通过标题传递tenantId 。我检查了文档,但没有得到我需要的东西,或者我可能遗漏了一些东西。那么有没有一种方法可以在使用 node-rdkafka 库生成消息时传递带有 headers 的tenantid?