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

Kafka Kstream和Spring@KafKalistener有何不同?

章安易
2023-03-14

所以我很想知道。这两个有什么不同?2.在哪种场景下选择哪一种?

共有1个答案

宗政欣可
2023-03-14

请注意,这是一个非常有限的解释。查阅文件。

回答你的问题1“这两个有什么不同?”-KafkaListener和KStream都使用来自Kafaka主题的消息。然而,它们在维持状态的方式上有所不同。KafkaListener不保持状态。它在收到消息时就使用它。KStream将主题作为连续的消息流读取。

让我们假设一个主题发送行,我们维护每个单词的数量计数。所以在我们发送主题这两行之后,

它被设计用于对无限的、无界的数据流进行操作

KStream示例非常详细地解释了这一点。

要回答您的问题2“在哪种情况下更喜欢哪一种?”,如果您需要使用消息而不维护状态,请使用KafkaListener。如果您的消息彼此相关,请使用KStream--比如查找所有消息中特定单词的总数(大致类似于SQL中的GROUP BY)。

 类似资料:
  • 我正在与spring boot spring@KafkaListener合作。我期望的行为是:我的Kafka侦听器以10个线程读取消息。因此,如果其中一个线程挂起,其他消息将继续读取和处理消息。 我定义了bean of 和spring启动配置: 我看到所有配置都能正常工作,我在jmx中看到了我的10个线程: 但是我做了这样的测试: 如果版本是 也许我的期望不是真的,这是Kafka听众的正确行为。请

  • 我正在编写一个应用程序(Spring Kotlin),它可以获取Kafka的信息。如果我在声明@KafkaListener时设置autoStartup=“true”,则应用程序可以正常运行,但前提是代理可用。当代理不可用时,应用程序在启动时崩溃。这是不受欢迎的行为。应用程序必须工作并执行其他功能。 为了避免应用程序在启动时崩溃,另一个主题建议在声明@KafkaListener时设置autoStar

  • 我试图在不使用@Kafkalistener的情况下编写kafka consumer,下面是我用于配置侦听器的代码行: 在这里,我如何配置topic和listener方法,我的consumer类可以有多个方法。 另外,我想知道在将@kafkalistener与Kafka流一起使用时是否会遇到任何潜在问题。 附言:我不想使用@KafkaListener。

  • 我正在尝试使用SpringKafka将kafka与我的SpringBoot(v2.0.6版本)应用程序集成。现在我想要一个消费者和一个生产者。我让制作人工作得很好,我可以看到通过控制台消费者发送到主题的消息。我无法使用消费者代码,当Kafka主题中出现新消息时,它不会被调用。 这是我的Kafka配置类: 以下是我的pom依赖项: 以及消费者代码: 我正在我的计算机上运行kafka,正如我所说的——

  • 我已经实现了Kafka消费者,现在我有了一个场景。 从Kafka流2.2.5中读取数据。通过Srpingboot发布 加载数据库表1 将数据从表1复制到表2 清理桌子1 要执行上述操作,我需要使用quartz的调度作业(已编写)暂停/恢复Kafka使用者,该作业将数据从表1复制到表2。但是在这个活动中,我希望我的Kafka听众暂停,一旦复制完成,它应该继续。 我的实施:

  • 我有一个Kafka的话题,我正在听。然后将消息内容写入websocket通道,在该通道中我有一个订阅了该通道的SockJS客户机。这很管用。然后我创建了一个新的主题,然后添加了第二个KafKalistener。但是,当调用secong侦听器时,我看到它正在尝试处理/读取与第一个KafkaListener和主题相对应的有效负载,由于它没有被配置为这样做,因此会引发一个MessageConversio