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

Kafka流与Kafka消费者如何决定使用什么

谷梁宁
2023-03-14

我已经做了一些Kafka流应用程序和Kafka消费者应用程序。最后,Kafka流不是什么,而是消费来自Kafka的实时事件的消费者。所以我不知道什么时候使用Kafka流,或者为什么我们应该使用Kafka流,因为我们可以在消费者端执行所有转换。

共有1个答案

司徒河
2023-03-14

这是一个关于“易用性”(或简单性)和“灵活性”的问题。与普通消费者/生产者相比,Kafaka流的两个“致命特征”是:

  • 内置状态处理,以及
  • 仅一次处理语义。

构建一个有状态的、容错的应用程序或与普通的消费者/生产者使用Kafka事务是相当困难的。此外,更高级别的DSL提供了大量难以从头构建的内置操作符,特别是:

    null

另一个很好的特性是标点符号。

然而,即使您构建了一个简单的无状态应用程序,使用Kafka流也可以帮助您显著地减少代码库(即,避免样板代码)。因此,建议在可能的情况下使用Kafka流,并且只有在Kafka流对您的用例不够灵活的情况下才返回到消费者/生产者。

 类似资料:
  • 我最近开始学习Kafka,最后就问了这些问题。 > 消费者和流的区别是什么?对我来说,如果任何工具/应用程序消费来自Kafka的消息,那么它就是Kafka世界中的消费者。 流与Kafka有何不同?为什么需要它,因为我们可以使用消费者API编写自己的消费者应用程序,并根据需要处理它们,或者将它们从消费者应用程序发送到Spark? 我做了谷歌对此,但没有得到任何好的答案。抱歉,如果这个问题太琐碎了。

  • 我对Kafka比较陌生。我对它做了一些实验,但有一些东西对我来说是不清楚的关于消费者抵消。根据我到目前为止的理解,当使用者启动时,它将从其开始读取的偏移量由配置设置确定(如果我错了,请更正)。 现在举个例子,在主题中有10条消息(偏移0到9),一个消费者碰巧在它关闭之前(或者在我杀死消费者之前)消费了其中的5条消息。然后假设我重新启动消费者进程。我的问题是: > 如果设置为,是否总是从偏移量0开始

  • 我有一个Kafka代理,有多个主题,每个主题都有一个分区。 我有一个消费者,它可以很好地使用主题中的消息 我的问题是,我需要通过增加分区的数量来提高消息队列的吞吐量,比如说,我在一个主题上有四个分区,有没有一种方法可以让我编写四个消费者,每个消费者都指向该主题上的各个分区??? }

  • 我刚接触Kafka,很少阅读教程。我无法理解使用者和分区之间的关系。 请回答我下面的问题。 > 消费者是否由ZK分配到单个分区,如果是,如果生产者将消息发送到不同的分区,那么其他分区的消费者将如何使用该消息? 我有一个主题,它有3个分区。我发布消息,它会转到P0。我有5个消费者(不同的消费者群体)。所有消费者都会阅读P0的信息吗?若我增加了许多消费者,他们会从相同的P0中阅读信息吗?如果所有消费者

  • 是否有一种方法以编程方式访问和打印使用者滞后偏移,或者说使用者读取的最后一条记录的偏移与某个生产者写入该使用者分区的最后一条记录的偏移之间的位置差。 要知道我的最终目标是将这个值发送到prometheus进行监视,我应该在上面添加哪些语句来得到滞后偏移值?

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