【发布时间】:2016-05-19 11:17:18
【问题描述】:
我即将编写一个用于发布和使用 kafka 消息的原型。 我们确实已经设置了 Cloudera 基础架构(动物园管理员、代理等),并且我已经成功地使用了 Kafka 命令行工具来生成和使用消息。
我使用[org.apache.kafka/kafka_2.10 "0.8.2.1"]作为依赖,并且已经能够使用客户端API设置KafkaProducer,它发布带有纯字符串内容的消息,并且可以被命令行消费者成功读取另一边。
我的问题是:internets 上是否有一个代码示例来显示如何初始化KafkaConsumer,并在另一侧阅读该消息,因为我已经搜索了几天,但没有一个code examples 似乎在工作:
- 它们使用的类或方法甚至在 API 本身中都不存在(例如,它们看似将属性映射传递给
org.apache.kafka.clients.consumer.ConsumerConfig的构造函数,但不存在这样的构造函数; - 在
kafka.consumer.Consumer类上调用createJavaConsumerConnector静态方法...这些东西存在于哪个宇宙中?)。
通常每个示例看起来都非常复杂。我希望消息传递框架需要几行配置来连接到代理,以及一些功能来放入/从队列或主题中取出。为 Kafka 设置 Producer 并不是一件非常复杂的事情,我希望 Consumer 也类似。
看来我也是not alone。
【问题讨论】:
-
不同的Kafka版本有API变化。跟踪您查看的示例的版本。在这里查看 0.8.2 API webhostingreviewjam.com/mirror/apache/kafka/0.8.2-beta/java-doc/… 如果这没有帮助,请提出更准确的问题...
-
@MatthiasJ.Sax 所以如果我理解正确的话,结论是 Kafka 在这个阶段绝对不是你推荐投入生产的东西。我之前用过很多消息系统,都不是太复杂,你可以从一个队列/主题中
put和take,经过几行配置/认证(1或2,不是100s),仅此而已. Kafka 正在实现该功能集,但我会尽量避免将其称为没有这些非常基本功能的消息传递平台。 -
@MatthiasJ.Sax 至于具体的例子,我写了我正在使用的maven依赖,以及我链接到的代码示例(对于版本0.8.0,并基于semantic versioning的概念,我希望它可以与我的 Maven 依赖项的版本一起使用),但它甚至无法编译。您可以向我指出一个与
0.8.2.1.一起使用的代码示例,我将不胜感激。 -
Kafka 已经完全可以生产了——已经有一段时间了。请参阅此处以获取使用它的公司列表:cwiki.apache.org/confluence/display/KAFKA/Powered+By 当然,您需要牢记您的用例,并且可能会出现其他一些系统最符合您的要求。对于 0.8.2 示例,请看这里:github.com/apache/kafka/tree/0.8.2/examples/src/main/java/kafka/…
-
这是 Kafka 与 AMQP 的一个很好的比较(从 28:45 开始观看)infoq.com/presentations/event-streams-kafka
标签: apache-kafka cloudera