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

c++ - LibRdKafka:commited_offset 始终为 -1001

当我运行我的消费者组时,我总是有这样的统计数据:

如您所见,所有偏移量都设置为 -1001:

这是我的设置(也适用于 default_topic):

有时,即使主题中有很多消息,消费者组也无法获取它们。任何想法?

0 投票
1 回答
839 浏览

apache-kafka - librdkafka producer 如何了解 Kafka 中的新主题分区

我正在运行 rdkafka_simple_producer.c 来向 Kafka 集群生成消息。我有一个主题和 30 个分区。使用默认的循环分区程序。当生产者工作并向 Kafka 生成消息时,我向 Kafka 添加了更多分区

我希望制作人意识到这一变化并最终开始制作所有 40 个主题。但是,最后我只看到原始 30 个分区产生了数据。

在测试中,生产者跑了 2 分钟。

我需要在 simple_producer 中添加任何函数调用还是我需要考虑的 Kafka 参数?

提前致谢!

0 投票
1 回答
1499 浏览

apache-kafka - Python librdkafka producer 针对本地 Apache Kafka Producer 执行

我正在针对 Python 的 confluent-kafka 测试具有本机 java 实现的 Apache Kafka Producer,以查看哪个具有最大吞吐量。

我正在使用 docker-compose 部署一个包含 3 个 Kafka 代理和 3 个 zookeeper 实例的 Kafka 集群。我的 docker 撰写文件:https ://paste.fedoraproject.org/paste/bn7rr2~YRuIihZ06O3Q6vw/raw

这是一个非常简单的代码,其中大部分是 Python confluent-kafka 的默认选项,以及 java producer 中的一些配置更改以匹配 confluent-kafka 的配置。

蟒蛇代码:

Java 实现。配置与 librdkafka 中的配置相同。按照 Edenhill 的建议更改了 linger.ms 和回调。


基准测试结果(根据 Edenhill 的建议进行更改后编辑)

Acks = 0消息:1000000

爪哇:12.066

Python:9.608 秒

Acks:全部消息:1000000

Java:45.763 11.917 秒

Python:14.3029 秒


即使在进行了我能想到的所有更改以及 Edenhill 在下面的评论中建议的更改之后,Java 实现的性能与 Python 实现相同。

关于 Kafka 在 Python 中的性能有各种基准测试,但我找不到任何将 librdkafka 或 python Kafka 与 Apache Kafka 进行比较的地方。

我有两个问题:

  1. 这个测试是否足以得出结论,默认配置和大小为 1Kb librdkafka 的消息更快?

  2. 有没有人有将 librdkafka 与 confluent-kafka 进行基准测试的经验或来源(博客、文档等)?

0 投票
3 回答
4779 浏览

apache-kafka - 没有消息时从 Kafka 消费者返回

我想使用Confluent dotnet client在应用程序启动中处理一个主题。假设以下示例:

当 Kafka 中没有新消息时,c.Consume 将被阻塞。因为我想用它来启动应用程序(比如缓存预热),所以当我发现没有新消息时,我想继续我的代码。

我知道设置超时存在过载,c.Consume(timeout)但这种方法的问题是,如果您的主题中有一条消息,并且阅读消息的持续时间超过了您的超时,您会收到不希望的空输出。

0 投票
1 回答
30 浏览

apache-kafka - 当消费者从多个分区读取数据时,某些分区似乎优先

我有一项使用 librdkafka 从 Kafka 主题读取的服务。我注意到,如果消费者关闭一段时间,一些日志条目会在 kafka 中建立(这完全没问题,也是意料之中的)

奇怪的是,有时当我启动消费者备份并按分区查看挂起的日志条目时,分配给同一消费者的分区似乎以不同的速度恢复。

例如,假设我有一个消费者 X,它声称分区 30 到 50。当消费者启动时,每个有 10,000 个待处理条目。

我看到的是 30-40 的未决条目呈下降趋势,而 41-50 的未决条目增长。当 30-40 最终达到零(或足够接近零)时,41-50 开始呈下降趋势。

为什么会这样?它是客户端功能还是服务器功能?

0 投票
1 回答
853 浏览

bazel - bazel rules_go:将 go 二进制文件链接到工作区中另一个目标生成的静态 c++ 库(.a 文件)

我在我的 go 二进制文件中使用 confluent-kafka-go 库,并且该库需要与 librdkafka 链接。我项目中的其他目标使用 librdkakfa,因此我使用 rules_foreign_cc 的 cmake_external 规则生成了静态 librdkafka.a 和 librdkafka++.a:

这会产生 librdkafka 库和头文件就好了:

现在我试图在我的 go_binary 规则中链接 librdkafka.a (我不需要 librdkafka++.a 文件,只需要 c 版本):

但是当我运行时,我得到了数百个未定义的 rdkafka 引用bazel build //foo:foo(我的 go 二进制文件)

0 投票
0 回答
71 浏览

node.js - 无法将 rdkafka 安装到 Windows 的节点模块中

我正在使用 lib-rdkafka,所以我必须安装到节点模块中,不幸的是我无法安装它。我正在使用 Windows 10 操作系统,但我的 Linux 没有问题

已经尝试过一些解决方案,例如为 nuget 和 msbuild 安装和添加路径

试过了npm install

截图已附上在此处输入图像描述

0 投票
0 回答
695 浏览

node.js - node-rdkafka 没有安装在本地 Windows 系统以及远程 linux 服务器中

node-rdkafka需要Python 2.7作为依赖项之一,并且它已经在系统中可用,还为其设置了路径。根据我的理解,
仍然npm会抛出与堆栈跟踪相关的错误。librdkafka

请在下面找到在 windows 中安装 node-rdkafka 时引发的错误。

node-rdkafka@2.6.1 安装 C:\Users\mrdeo\node_modules\node-rdkafka
node-gyp 重建

C:\Users\mrdeo\node_modules\node-rdkafka>如果未定义 npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules \node-gyp\bin\node-gyp.js" rebuild ) else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
构建项目在这个解决方案中,一次一个。要启用并行构建,请添加“/m”开关。
从 nuget
cl 获取 librdkafka:命令行警告 D9025:使用“/GR”覆盖“/GR-”
[C:\Users\mrdeo\node_modules\node-rdkafka\build\node-libr dkafka.vcxproj]
cl:命令行警告D9025:用“/GR”覆盖“/GR-”
[C:
binding.cc
cl:命令行警告 D9025:用“/GR”覆盖“/GR-”
[C:\Users\mrdeo\node_modules\node-rdkafka\build\node-libr dkafka.vcxproj]
cl:命令行警告 D9025 : 用 '/GR' 覆盖 '/GR-'
[C:\Users\mrdeo\node_modules\node-rdkafka\build\node-libr dkafka.vcxproj]
callbacks.cc
common.cc
cl : 命令行警告 D9025: overriding ' /GR-' 和 '/GR'
[C:\Users\mrdeo\node_modules\node-rdkafka\build\node-libr dkafka.vcxproj]
config.cc
..\src\callbacks.cc(103):警告 C4996: 'Nan::Callback::Call': 被宣布弃用 [C:\Users\mrdeo\node_modules\no de-rdkafka\build\node-librdkafka.vcxproj]

C:\Users\mrdeo\node_modules\nan\nan.h(1740):注意:请参阅 'Nan::Callback::Call' 的声明
..\src\callbacks.cc(275):错误 C2589:'(' : '::' 右侧的非法令牌 [C:\Users\mrdeo\node_modules\node-rdkaf ka\build\node-librdkafka.vcxproj]
..\src\callbacks.cc(275):错误 C2059:语法错误:'::' [C:\Users\mrdeo\node_modules\node-rdkafka\build\node-librdkaf ka.vcxproj]
..\src\callbacks.cc(575): 警告 C4996: 'Nan::Callback: :Call': 被声明为弃用 [C:\Users\mrdeo\node_modules\no de-rdkafka\build\node-librdkafka.vcxproj]

C:\Users\mrdeo\node_modules\nan\nan.h(1740):注意:见'Nan::Callback::Call'的声明
..\src\callbacks.cc(612): 警告 C4996: 'Nan::Callback::operator ()': 被宣布弃用 [C:\Users\mrdeo\node_modules\node-rdkafka\build\node-librdkafka .vcxproj]

C:\Users\mrdeo\node_modules\nan\nan.h(1638):注意:见 'Nan::Callback::operator ()'
connection.cc
errors.cc

kafka-consumer.cc
producer 的声明。 cc
C:\Users\mrdeo\node_modules\node-rdkafka\src/workers.h(42): 警告 C4996: 'Nan::Callback::Call': was declared deprecated (compile source file ..\src\connection .cc)
[C:\Users\mrdeo\node_modules\node-rdkafka\build\node-librdkafka.vcxproj ]
C:\Users\mrdeo\node_modules\nan\nan.h(1740):注意:参见“Nan”的声明::Callback::Call' (编译源文件..
\src\connection.cc)
C:\Users\mrdeo\node_modules\node-rdkafka\src/workers.h(42): 警告 C4996: 'Nan::Callback::Call': was declared deprecated (编译源文件..\src\kafka-consumer.cc)
[C:\Users\mrdeo\node_modules\node-rdkafka\build\node-librdkafka.vcx proj]
C:\Users\mrdeo\node_modules\nan\nan.h(1740 ): 注意:见 'Nan::Callback::Call' 的声明(编译源文件..
\src\kafka-consumer.cc)
C:\Users\mrdeo\node_modules\node-rdkafka\src/workers.h( 42): 警告 C4996: 'Nan::Callback::Call': 被声明为弃用 (编译源文件 ..\src\producer.cc) [C:\Users\mrdeo\node_modules\node-rdkafka\build\node -librdkafka.vcxproj]
C:\Users\mrdeo\node_modules\nan\nan.h(1740):注意:见“Nan::Callback::Call”的声明(编译源文件..
\src\producer.cc)
..\src\ kafka-consumer.cc(560): 警告 C4996: 'v8::Value::ToObject': 被宣布弃用 [C:\Users\mrdeo\node_modul es\node-rdkafka\build\node-librdkafka.vcxproj]

c: \users\mrdeo.node-gyp\10.15.3\include\node\v8.h(10046):注意:见 'v8::Value::ToObject' 的声明 ..\src\kafka-consumer.cc(567 ): 警告 C4996: 'v8::Value::ToObject': 被声明为弃用 [C:\Users\mrdeo\node_modul es\node-rdkafka\build\node-librdkafka.vcxproj]

c:\users\mrdeo.node-gyp\10.15.3\include\node\v8.h(10046): 注意:见 'v8::Value::ToObject' 的声明 ..\src\producer.cc(115 ): 警告 C4996: 'v8::Value::ToObject': 被宣布弃用 [C:\Users\mrdeo\node_modules\nod e-rdkafka\build\node-librdkafka.vcxproj]

c:\users\mrdeo.node- gyp\10.15.3\include\node\v8.h(10046): 注意: 见 'v8::Value::ToObject'
topic.cc的声明
..\src\producer.cc(122): 警告 C4996: ' v8::Value::ToObject': 被声明为弃用 [C:\Users\mrdeo\node_modules\nod e-rdkafka\build\node-librdkafka.vcxproj]

c:\users\mrdeo.node-gyp\10.15.3\include\node\v8.h(10046): 注意:见 'v8::Value::ToObject' 的声明 ..\src\producer.cc(373 ): 警告 C4996: 'v8::Value::ToObject': 被宣布弃用 [C:\Users\mrdeo\node_modules\nod e-rdkafka\build\node-librdkafka.vcxproj]

c:\users\mrdeo.node- gyp\10.15.3\include\node\v8.h(10046): 注意: 见 'v8::Value::ToObject' 的声明 ..\src\producer.cc(396): 警告 C4996: 'v8:: Value::ToObject': 被声明为 deprecatedworkers.cc [C:\Users\mrdeo\node_m odules\node-rdkafka\build\node-librdkafka.vcxproj]

c:\users\mrdeo.node-gyp\10.15.3\include\node\v8.h(10046): 注意:见 'v8::Value::ToObject' gyp
ERR 的声明!构建错误
gyp ERR!堆栈错误:C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe退出代码失败:1
gyp ERR!堆栈在 ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:262:23) gyp
ERR!ChildProcess.emit (events.js:189:13) 的堆栈 gyp
ERR!堆栈在 Process.ChildProcess._handle.onexit (internal/child_process.js:248:12) gyp
ERR!系统 Windows_NT 10.0.15063 gyp
错误!命令“C:\Program Files\nodejs\node.exe”“C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js”“重建”gyp
错误!cwd C:\Users\mrdeo\node_modules\node-rdkafka
吉普错误!节点 -v v10.15.3 gyp
错误!节点-gyp -v v3.8.0 gyp
错误!不行
npm WARN commons-example@0.0.1 没有存储库字段。

npm 错误!代码 ELIFECYCLE
npm 错误!errno 1
npm 错误!node-rdkafka@2.6.1 安装:node-gyp rebuild
npm ERR!退出状态 1
npm ERR!
npm 错误!在 node-rdkafka@2.6.1 安装脚本中失败。
npm 错误!这可能不是 npm 的问题。上面可能有额外的日志输出。

0 投票
1 回答
4063 浏览

c - librdkafka 消费者和 ssl 配置

我使用 librdkafka 作为客户端消费者,并且我已经为代理配置了代理和客户端以支持 SSL:

在客户端我使用这个配置:

我收到了这个错误:

有关更多信息,我同时有另一个使用相同证书和密钥的 python kafka 客户端,它工作正常。我将非常感谢任何帮助。

0 投票
1 回答
6140 浏览

go - Kafka 消费者在超过 max.poll.interval.ms 后卡住了

当消费者在 5 分钟内没有收到消息(默认值为 max.poll.interval.ms 300000ms)时,消费者会在不退出程序的情况下停止。消费者进程挂起并且不再消费任何消息。

记录以下错误消息

我看到这ErrMaxPollExceeded是在 confluent-kafka-go 中定义,但无法找到它在哪里被提出。

如果出现任何此类错误,为什么程序不退出?

  • 卡夫卡 v1.1.0
  • librdkafka v1.0.0
  • confluent-kafka-go (主)

用于 kafka.Consumer 的配置