当前位置: 首页 > 知识库问答 >
问题:

一个“Kafka喷口”和一个“Kafka消费者”有什么区别?

丘华翰
2023-03-14

“Kafka spout”和“Kafka Consumer”都从Kafka经纪人那里检索数据,到目前为止我知道的spout是用来与Storm通信的,而Consumer是用来与其他任何东西通信的。

--但是,技术上的区别是什么?

-或者,如果我使用Consumer提取数据,然后使用“Storm Spout”接收数据,和如果我只是使用“Kafka Spout”,然后将其添加到我的Storm拓扑构建器的setSpout()中,两者之间有什么区别;功能

共有1个答案

戚飞虎
2023-03-14

a/“Kafka Spout”是Storm专用适配器,用于将数据从Kafka读取到Storm拓扑中。在幕后,Kafka喷口实际上使用了Kafka内置的“Kafka消费者”客户端。

从技术上讲,不同之处在于,Kafka喷口是Kafka消费者客户端之上的一种Storm感知“包装器”。

在Storm中,您通常应该始终使用包含的Kafka spout(请参见https://github.com/apache/Storm/tree/master/external/storm-kafka,或者,对于使用Kafka所谓的“新”消费者客户端的spout实现,请参见https://github.com/apache/Storm/tree/master/external/storm-kafka-client)。实现自己的情况非常罕见--也许最有可能的情况是,现有的Kafka spout中存在一个bug,您需要解决这个bug,直到Storm项目在上游修复这个bug。

 类似资料:
  • 我有一个将消息写入主题/分区的生产者。为了保持顺序,我希望使用单个分区,我希望12个使用者读取来自这个分区的所有消息(没有使用者组,所有消息都应该发送给所有使用者)。这是可以实现的吗?我读过一些论坛,每个分区只有一个用户可以阅读。

  • 在Apache Kafka 0.8.2 office文档的第5.6节“分销、消费者和消费者群体”小节中,它说 组中的使用者尽可能公平地划分分区,每个分区仅由一个消费组中的一个使用者使用。 但是我发现,在实践中,一个消费者组中的多个消费者可以通过从同一主题分区发送 FetchRequest 来使用单个分区中的数据。 在接下来的消费者身份证登记处小节中 除了由一个组中的所有使用者共享的group_id

  • Flink kafka消费者有两种类型的消费者,例如: 这两个消费者层次结构扩展了相同的类。我想知道维护编号类背后的设计决策是什么?我们什么时候应该使用其中一种? 我注意到带有数字后缀的类有更多的特性(例如ratelimiting)。 https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kafka

  • 我只是在试用这里提到的kafka-storm喷口https://github.com/nathanmarz/storm-contrib/tree/master/storm-kafka,我使用的配置如下所述。 但是,上面的喷子从Kafka主题中获取消息的速度大约是每秒7000条,但我预计每秒大约有50000条消息。我尝试了在spoutConfig中增加提取缓冲区大小的各种选项,但没有看到任何结果。

  • 我刚刚开始玩弄《Spring-Cloud-Stream》中的Kafka活页夹。 我配置了一个简单的消费者: 但当我启动应用程序时,我看到在启动日志中创建了三个独立的消费者配置: 我发现这些配置之间唯一不同的是客户机。id。 除此之外,我不知道为什么只有一个消费者有三种配置。 是因为我也在运行吗? 这是我的:

  • null 我在这一页上读到以下内容: 使用者从任何单个分区读取,允许您以与消息生成类似的方式扩展消息消耗的吞吐量。 也可以将使用者组织为给定主题的使用者组-组内的每个使用者从唯一分区读取,并且组作为一个整体使用来自整个主题的所有消息。 如果使用者多于分区,则某些使用者将空闲,因为它们没有可从中读取的分区。 如果分区多于使用者,则使用者将从多个分区接收消息。 如果使用者和分区的数量相等,则每个使用者