问题标签 [apache-kafka]

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 回答
3724 浏览

message-queue - Kafka 0.8 生产者,使用“request.required.acks”属性

0.8生产者配置下的文档属性request.required.acks

值控制何时producer receives an acknowledgement来自经纪人。

典型值为

(1) 0,表示生产者从不等待经纪人的确认

(2) 1,表示producer gets an acknowledgementleader副本收到数据后

(3) -1,表示producer gets an acknowledgement所有同步的副本都接收到数据之后

request.required.acks值为1. 作为producer.send(MessageKey)一个 void 我找不到任何选项来检索它。

0 投票
1 回答
4600 浏览

java - Kafka:无法创建多个流消费者

我刚刚启动并运行 Kafka 0.8 beta 1。我有一个非常简单的例子启动并运行,问题是,我只能让一个消息使用者工作,而不是几个。也就是说,runSingleWorker() 方法有效。run() 方法不起作用:

在我的玩具消费者内部:

问题是,工人池不接收消息:

当我通过生产命令行添加消息时,消息在单线程worker版本下打印,但在多流情况下不打印消息。这里发生了什么?我怎样才能解决这个问题?

顺便说一句,kafka 0.8 的 pom.xml 不是有效的 pom,不会获取依赖项,所以这里是一个具有完整依赖项的 pom。

0 投票
2 回答
11802 浏览

queue - 简单拉取消息队列

我正在努力为这项工作找到合适的工具。我已经探索了一些不同的消息队列,例如 Kafka、Kestrel 等……并且我正在寻找具有 PULL 功能的东西。

我有一个将传入消息推入队列的 API(分布式)。然后我会让工作人员(单独的机器)从队列中提取消息。这确保了工作人员不会被淹没并且无法处理队列的负载。

我想知道 Kafka 或 Kestrel 是否支持这种类型的功能

0 投票
1 回答
5108 浏览

apache-kafka - Apache Kafka - 消费者没有收到来自生产者的消息

我会很感激你在这方面的帮助。

我正在构建一个 Apache Kafka 消费者来订阅另一个已经在运行的 Kafka。现在,我的问题是,当我的生产者将消息推送到服务器时......我的消费者没有收到它们......并且我在打印的日志中得到以下信息::

我不确定我是否在这里遗漏了任何重要的配置......但是,我可以看到一些来自我的服务器使用 WireShark 的消息,但它们没有被我的消费者消费......

我的代码是示例消费者示例的精确副本: https ://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example

更新:

0 投票
0 回答
2228 浏览

apache-kafka - Kafka 队列中的消息排序以获取无序消息

我们正在研究一种情况,即消息从 Kafka 队列中的源系统以无序的时间生成。

我们想对 Kafka 队列中的消息进行排序,或者想使用任何其他方法,以便 Kafka 消费者可以消费时间排序的消息,而不会影响太多的实时性。

只是为了提供信息,我们正在使用 Storm-Kafka 0.8 集成,因此无论如何都可以使用 Storm 处理它。

任何帮助或指导将不胜感激。

0 投票
4 回答
9167 浏览

message-queue - 在 kafka 消息有效负载中添加时间戳

有什么方法可以在 Kafka 消息有效负载中添加时间戳标头?我想检查消息何时在消费者端创建并基于此应用自定义逻辑。

编辑

我正在尝试找到一种将一些自定义值(基本上是时间戳)附加到生产者发布的消息的方法,以便我可以在特定时间段内使用消息。现在 Kafka 只确保消息按照放入队列的顺序传递。但在我的情况下,先前生成的记录可能会在一定延迟后到达(因此在时间 T1 生成的消息可能具有比在稍后时间 T2 生成的偏移量为 0 的消息更高的偏移量 1)。出于这个原因,它们不会按照我在消费者端的预期顺序。所以我基本上是在寻找一种方式来以有序的方式消费它们。

当前的 Kafka 0.8 版本除了在生产者端附加“消息密钥”之外没有其他方法,在这里找到了一个类似的主题,建议在消息有效负载中对​​其进行编码。但是我做了很多搜索,但找不到可能的方法。

此外,我不知道这种方法是否对 Kafka 的整体性能有任何影响,因为它在内部管理消息偏移量,并且从这个页面中可以看出,目前还没有公开这样的 API

如果我的想法完全正确,或者有任何可能的方法,我真的很感激任何线索,我都准备试一试

0 投票
1 回答
10354 浏览

node.js - 使用 Apache Kafka 进行日志聚合

我正在从他们的快速入门教程中学习 Apache Kafka:http: //kafka.apache.org/documentation.html#quickstart。到目前为止,我已经完成了如下设置。一个生产者节点,其中一个 Web 服务器在端口 8888 上运行。另一个节点上的 Kafka 服务器(代理)、消费者和 Zookeeper 实例。我已经用 3 个分区测试了默认的控制台/文件启用的生产者和消费者。设置是完美的,我可以看到我按照他们创建的顺序发送的消息(在每个分区中)。

现在,我想将从 Web 服务器生成的日志发送到 Kafka Broker。这些消息将由消费者稍后处理。目前我正在使用 syslog-ng 将服务器日志捕获到文本文件中。关于如何实现生产者使用kafka进行日志聚合,我想出了3个粗略的想法

Producer Implementations

First Kind: 监听 syslog-ng 的 tcp 端口。获取每条消息并发送到 kafka 服务器。这里我们有两个中间进程:Producer 和 syslog-ng
第二类:使用 syslog-ng 作为 Producer。应该找到一种将消息发送到 Kafka 服务器而不是写入文件的方法。syslog-ng,生产者是中间进程。
第三种:将网络服务器本身配置为生产者。

我的想法是否正确。在最后一种情况下,我们没有任何中间过程。但我怀疑它的实现会影响服务器性能。谁能告诉我使用 Apache Kafka 的最佳方法(如果上述 3 种不好)并指导我进行适当的服务器配置?..

PS:我正在为我的网络服务器使用 node.js

谢谢,
萨拉特

0 投票
1 回答
3402 浏览

apache-storm - 三叉戟拓扑中的并行配置(风暴)

在阅读了这个这个之后,我很难理解如何配置我的三叉戟拓扑。

基本上我的 Storm 应用程序是从kafka读取数据,进行一些数据操作,最后写入Cassandra

这是我目前构建拓扑的方式:

所以我得到了一个spout和一些带有parallelismHint的操作(filter,groupby)。我不知道确定最佳并行度提示,此外,如果我在我的代码中设置此值,它如何与风暴标准拓扑配置结合使用,例如

提前致谢

0 投票
2 回答
3155 浏览

apache-storm - 从 Kafka 检索主题并发送到相应的 spout 和 bolt

我正在为 Kafka 制作多个主题。我想从 Kafka 中检索所有主题,并且我有不同的 spout 和 bolts。我想将每个主题发送到相应的 spout 和关联的 bolt(例如,对于 topic1,我有相应的 spout1 和 bolt1,对于 topic2,我有相应的spout2 和 bolt2 等等..)
我该怎么做?

0 投票
1 回答
786 浏览

apache-kafka - 多个经纪人 Kafka 0.7

我正在尝试使用 Kafka 0.7.2 启动多个代理。我收到以下错误:

我为这两个代理创建了两个不同的配置文件,并使用以下命令运行它:

我对 0.8 做了同样的事情,而且效果很好。我在这里错过了什么吗?