首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在共享库'librdkafka‘中找不到名为'rd_kafka_producev’的入口点

在共享库'librdkafka‘中找不到名为'rd_kafka_producev’的入口点
EN

Stack Overflow用户
提问于 2020-02-19 10:16:28
回答 1查看 189关注 0票数 0

我正在开发一个使用Nuget包的.NET核心应用程序-- Confluent.Kafka,版本0.11.3

我使用它来实例化一个Producer,然后调用myProducer.ProduceAsync方法。我在应用程序日志中看到一个错误,声明为- Unable to find an entry point named 'rd_kafka_producev' in shared library 'librdkafka'

我在一个运行Debian v9的容器中运行Kafka。运行使用.NET的Kafka核心应用程序的docker容器安装了librdkafka1 - v0.9.3-1。我需要在容器中手动安装它,作为Docker镜像的一部分,使用:

RUN apt-get update -y RUN apt-get install -y librdkafka-dev

我不明白为什么我需要手动安装它--这是为了修复一个根本找不到库的错误。它不应该已经存在于镜像中吗?我使用的是标准的wurstmeister/kafka Docker镜像。

一切都在不同的服务器上运行,该服务器使用完全相同的Confluent.Kafka包版本,并且安装了完全相同的librdkafka1。有什么办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-02-19 12:56:13

我从Docker文件中删除了以下内容:

RUN apt-get update -y RUN apt-get install -y librdkafka-dev

然后,从运行我的应用程序的Debian容器中删除librdkafka1。将我的应用程序重新部署到容器中,现在它可以工作了。奇怪的是,librdkafka1现在不再作为一个包存在于容器中。

我发现librdkafka1是我的.NET核心项目中的.NET Confluent.Kafka依赖所需要的一个.NET库。我也提出了这个Github issue,librdkafka的创建者Magnus Edenhill很友好地提供了这个信息:

GSSAPI kafka-dotnet依赖于包含

的GSSAPI包,因此您通常不必在系统上手动安装librdkafka (在某些情况下,您可以这样做,例如使用librdkafka.redist时)。

因此,在大多数情况下,只要您的解决方案中有Confluent.Kafka nuget包作为依赖项,就应该以某种方式安装librdkafka。因此,如果您遇到与我类似的问题,可能值得清除您的部署/容器和任何显式安装的librdkafka1实例,并重新部署以安装依赖项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60292055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档