使用 java 向 kafka 主题发送消息
Send message to a kafka topic using java
经过几个星期在这里和 google 寻找一些信息后,我决定 post 在这里看看是否有同样问题的人可以举手。
我有一个在 Eclipse Ganymede 中开发的 java 应用程序,使用 tomcat 连接到我的本地数据库。问题是我想向 public 服务器上发布的 Kafka 主题发送一条简单消息 ("Hello World")。我已经导入了库并开发了 Kafka 功能,但是当我 运行 在调试模式下时发生了一些事情。编译时我没有问题或可见错误,但是当我 运行 应用程序并按下按钮以引发此功能时,它会在 KafkaProducer 函数中停止,因为存在 NoClassDefFoundError kafka.producer..... 似乎它没有正确找到库,但我看到它在正确导入的构建路径中。
我不确定问题是否与 Kafka 以及与 Eclipse 或 Java SDK (3.6) 的兼容性有关,可能是?有人知道卡夫卡 Java 的最低要求版本吗?
此外,我发现 Kafka 确实使用了 Scala,但我想知道我是否可以使用这个 Eclipse IDE 版本而不更改它。
我找到的另一种解决方案是使用从 Java 应用程序调用的 Python 脚本,但我无法从那里调用它,因为我遵循了几个教程但没有任何效果,但我必须继续这样做,因为它似乎是一个更容易的选择。我已经开发了 .py 脚本并与 Kafka 服务器一起工作,现在我必须找到从 Java 和 Python 交换变量的解决方案。如果有人知道这方面的任何好的教程,请告诉我。
在我恢复了这段日子之后,在我的头撞墙之后,也许有人之前发现了这个错误并且可以帮助我找到解决方案,我真的很感激,并为漫长的历史感到抱歉。
请将 Kafka 客户端库包含在您要部署到 Tomcat
的 Java 应用程序的 WAR 文件中
请使用 org.apache.kafka.clients.producer.KafkaProducer 而不是 kafka.producer.Producer(这是旧客户端 API)并确保类路径中有 Kafka 客户端库。客户端库完全在 Java 中。这是用 scala 编写的旧 API,服务器端代码也是如此。如果您使用新客户端,则无需在代码中导入服务器库或将其添加到类路径中 API.
最后问题是库没加好。我必须将它添加到 build.xml 文件中,并在此处导入库。也许这对使用旧 Eclipse 版本的人有用。
所以现在它找到了库,但我必须更新 Java 版本,其他问题。这样就解决了
经过几个星期在这里和 google 寻找一些信息后,我决定 post 在这里看看是否有同样问题的人可以举手。
我有一个在 Eclipse Ganymede 中开发的 java 应用程序,使用 tomcat 连接到我的本地数据库。问题是我想向 public 服务器上发布的 Kafka 主题发送一条简单消息 ("Hello World")。我已经导入了库并开发了 Kafka 功能,但是当我 运行 在调试模式下时发生了一些事情。编译时我没有问题或可见错误,但是当我 运行 应用程序并按下按钮以引发此功能时,它会在 KafkaProducer 函数中停止,因为存在 NoClassDefFoundError kafka.producer..... 似乎它没有正确找到库,但我看到它在正确导入的构建路径中。
我不确定问题是否与 Kafka 以及与 Eclipse 或 Java SDK (3.6) 的兼容性有关,可能是?有人知道卡夫卡 Java 的最低要求版本吗?
此外,我发现 Kafka 确实使用了 Scala,但我想知道我是否可以使用这个 Eclipse IDE 版本而不更改它。
我找到的另一种解决方案是使用从 Java 应用程序调用的 Python 脚本,但我无法从那里调用它,因为我遵循了几个教程但没有任何效果,但我必须继续这样做,因为它似乎是一个更容易的选择。我已经开发了 .py 脚本并与 Kafka 服务器一起工作,现在我必须找到从 Java 和 Python 交换变量的解决方案。如果有人知道这方面的任何好的教程,请告诉我。
在我恢复了这段日子之后,在我的头撞墙之后,也许有人之前发现了这个错误并且可以帮助我找到解决方案,我真的很感激,并为漫长的历史感到抱歉。
请将 Kafka 客户端库包含在您要部署到 Tomcat
的 Java 应用程序的 WAR 文件中请使用 org.apache.kafka.clients.producer.KafkaProducer 而不是 kafka.producer.Producer(这是旧客户端 API)并确保类路径中有 Kafka 客户端库。客户端库完全在 Java 中。这是用 scala 编写的旧 API,服务器端代码也是如此。如果您使用新客户端,则无需在代码中导入服务器库或将其添加到类路径中 API.
最后问题是库没加好。我必须将它添加到 build.xml 文件中,并在此处导入库。也许这对使用旧 Eclipse 版本的人有用。 所以现在它找到了库,但我必须更新 Java 版本,其他问题。这样就解决了