问题标签 [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 回答
201 浏览

node.js - 如果使用 node-rdkafka 创建超过 3 个消费者实例,则网络超时错误

我正在使用 node-rdkafka 连接到托管在云 vm 上的 Kafka 实例。我有多个消费者,每个消费者都使用以下 Kafka 配置:

只有 5 个主题,只有当我创建少于 4 个消费者实例时,我的消费者代码才能正常工作。如果我添加超过 3 个,我的 nodejs express 服务器会在任何外部请求上返回超时。就像例如。我正在其中一个消费者中进行虚拟 api 调用获取:

如果我创建了 3 个以上的消费者实例,这段代码就会神秘地超时。虽然,如果有 3 个或少于 3 个消费者实例,它工作得非常好。上面的 fetch 调用在消费者的数据事件中被调用:

为什么我在添加更多消费者时会出现这些网络超时?

我尝试过的事情:

  • 更改消费者组名称。
  • 为特定主题添加更多分区。

对于托管 Kafka:我使用带有免费许可证密钥的https://lenses.io/box/ 。

0 投票
0 回答
505 浏览

apache-kafka - 在 kafka 消费者中使用分配而不是订阅

我有两个不同的应用程序,它们具有不同的消费者 ID 和组 ID,如下所示。

消费者 1 和消费者 2 都被手动分配到同一个主题分区(假设主题名称 = 测试和分区 id = 0)并且独立地消费消息。现在我的问题是,由于assign()将失去对动态分区分配和消费者组协调的控制,Kafka 如何存储/识别消费者 1 和消费者 2 的最后提交的偏移量。有时我会看到提交失败并显示如下消息。

这是因为我使用了两个不同的消费者(在两个不同的应用程序中)手动分配给同一个主题和分区 ID?是否允许使用手动分配给同一主题和分区的两个消费者?

我还怀疑我的消费者的最大轮询/会话超时间隔是否太小。但是为了测试,我评论了我所有的处理逻辑,以便我只使用并写一个日志,但我仍然看到上面的提交失败错误。

0 投票
1 回答
1820 浏览

c# - Confluent Kafka Dotnet Kerberos 支持 Dockerfile(SASL 机制 GSSAPI 没有提供者)

我正在尝试使用confluent-kafka-dotnet创建一个 dockerfile,它是一个 kafka 客户端。它必须使用 Kerberos 密钥表进行连接,因此我已经阅读了这个 Github wiki

这是我的码头文件:

我的 C# 消费者配置代码如下:

但是当我启动我的客户端时出现以下异常

任何人都可以帮助我或指出我正确的方向吗?我在 GitHub 上找到了这个,但我似乎无法让它工作。

我不知道如何一步一步安装librdkafka。

0 投票
1 回答
367 浏览

c - 如果我们还没有消费任何消息,如何确定 Kafka 主题分区偏移量

librdkafka 包含rd_kafka_position获取给定主题分区的当前偏移量的函数。但评论说:

换句话说,如果还没有消息被消费,它不会给你任何有用的信息。

我对我刚刚订阅了一个主题的情况感兴趣,并且我已经调用rd_kafka_seek过:

  1. 寻找已知位置(在错误恢复的情况下),或
  2. 寻找到分区的最后。

在这种情况下,我想知道的是,如果要消费一条消息,则下一条消息的偏移量是多少。换句话说,在第一种情况下,它应该与传递给 的偏移量相同rd_kafka_seek,而在第二种情况下,它应该是 1 加上rd_kafka_seek调用时分区中的最后一条消息的偏移量。

不幸的是,正如评论所说,rd_kafka_position不返回此信息。如果还没有消息被消费,它给出-1001( RD_KAFKA_OFFSET_INVALID)。如果我使用一条消息然后调用rd_kafka_position,它会给出正确的偏移量。

在使用任何消息之前,我可以调用其他一些函数来获取偏移量吗?

0 投票
0 回答
756 浏览

apache-kafka - Kafka Confluent Client .NET Core 无法访问 Windows 中间证书颁发机构

我在这里发布了一个关于设置EnableSslCertificateVerification设置的问题 yo true 它如何在 Windows 上不起作用。SSL 握手失败。

我发现这可以通过添加SslCaLocation设置来解决,如下所示:

其中 cacert.pem 文件只是证书签名 PK 的串联。这样可行。我不确定为什么在理想情况下它应该能够检查 Windows 上受信任的根存储时需要这样做。

更新

需要两个证书。其中一个在受信任的根证书颁发机构中,另一个在中间证书颁发机构中。

我删除了SslCaLocation配置,只是将第二个证书从中间存储区导入到根存储区,它就可以工作了。

Kafka 的 Confluent Client Lib / Windows 的 librdkafka 是否不查看中间证书存储?

0 投票
0 回答
965 浏览

c++ - 如何让 librdkafka C++ producer 示例在调试器下的 Windows 上工作?

我在 Windows 上工作,在 Visual Studio 2019 中,使用 librdkafka.redist NuGet 包 v1.50。

我已经将 librdkafka producer.cpp 示例代码复制/粘贴到我的空 C++ 项目中,仅将一行更改为如下:

我还修改了 build/native/librdkafka.redist.targets,将出现的“librdkafka.lib”替换为“librdkafkacpp.lib”,因为我正在使用 C++。

在所有情况下,命令行参数都是“127.0.0.1 test”。我在本地运行 Kafka,主题是“测试”。

使用此设置,项目作为发布可执行文件构建并运行得很好。我可以键入要生成的字符串,它们是为主题测试而生成的。

如果我切换到调试配置(32 位或 64 位,没关系),程序构建得很好,但在运行它时,它会在尝试调用时立即崩溃:

发生此崩溃时,经纪人确实是“127.0.0.1”。

这是在调用之后:

我不希望进入librdkafkacpp 代码,但它会很好地在运行调试可执行文件时实际正常运行。

我还证明了即使我不在调试器下运行调试可执行文件也会失败。它在 64 位 exe 中因此错误而崩溃。

这是 32 位 exe 中的错误:

在我构建调试可执行文件时,它们显然存在严重问题。你知道问题是什么吗?

0 投票
1 回答
437 浏览

go - 忽略 librd kafka 中的测试

我的golang项目依赖librd kafka

当我尝试运行go vet ./...go test ./...从我的 jenkin 运行时,我收到以下错误。我相信这是因为我正在跑步./...,但即使我不得不忽略供应商,我也不确定我应该尝试什么,go test $(go list ./... | grep -v /vendor/librdkafka) 但它没有帮助。

我想知道如何在测试我的项目时绕过那个 gcc 错误

我的 Dockerfile :

我的詹金斯文件片段

0 投票
1 回答
425 浏览

c++ - 如何使用 qmake & mingw 构建示例 cppkafka?

我需要远离cmake,所以我想在mingw上构建一个qmake项目。请帮助我了解缺少的内容。从https://github.com/mfontanini/cppkafka构建 CPPKafka

主文件

。轮廓

命令

g++ -Wl,-subsystem,console -mthreads -o debug\cpp_kafka_ex.exe debug/main.o "C:\Program Files\RdKafka\bin\librdkafka.dll" "C:\Program Files\RdKafka\bin\librdkafka++。 dll" -lpthread -lz -lstdc++ "C:\Program Files\CppKafka\bin\libcppkafka.dll"

链接错误

debug/main.o:在函数std::unique_ptr<rd_kafka_s, cppkafka::KafkaHandleBase::HandleDeleter>::~unique_ptr()': C:/Qt/Tools/mingw730_64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/bits/unique_ptr.h:268: undefined reference to cppkafka::KafkaHandleBase::HandleDeleter::operator()(rd_kafka_s*)' collect2.exe:错误:ld 返回 1 退出状态

制作

0 投票
0 回答
204 浏览

macos - 图书馆 | 错误:配置属性“security.protocol”的值“sasl_ssl”无效

我是 kafka 的新手,试图在我的 mac Catalina 上探索它。我浏览了文档和几个论坛,但运行它没有运气。

我按照以下步骤操作:

  1. 用 brew 安装了 openssl@1.1。

  2. echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

  3. export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"

  4. export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

  5. 然后安装 librdkafka。

  6. 做了一个生产者服务,我无法运行它。

它不断地向我抛出

任何帮助将非常感激。提前致谢。

0 投票
1 回答
1007 浏览

php - 为什么找不到 RdKafka?

我有一个dockerfile:

docker-compose build 和 up -d之后,执行容器 php,make php -m,我在模块列表中看到了rdkafka 。

在 composer.json 中添加并安装了类似的东西:

在这个项目中,我使用了 php 框架Lumen
问题:当我尝试在任何课程中放置$conf = new RdKafka\Conf(); - 每次我得到一个错误:未定义的类'Conf'

为什么?