sur*_*nde 6 apache-kafka kafka-consumer-api apache-kafka-streams
我曾开发过一些 Kafka 流应用程序和 Kafka 消费者应用程序。最后,Kafka流只不过是消费者,它消费来自Kafka的实时事件。因此,我无法弄清楚何时使用 Kafka 流,或者为什么我们应该使用 Kafka 流,因为我们可以在消费者端执行所有转换。
我想了解 Kafka 流和 Kafka 消费者在实现方面的主要区别,以及如何决定在不同用例中应该使用什么。
预先感谢您的答复。
这是一个关于“易用性”(或简单性)和“灵活性”的问题。与普通消费者/生产者相比,Kafka Streams 的两个“杀手级功能”是:
构建一个有状态、容错的应用程序或与普通消费者/生产者一起使用 Kafka 事务是相当困难的。此外,更高级别的 DSL 提供了许多难以从头开始构建的内置运算符,特别是:
另一个不错的功能是标点符号。
但是,即使您构建一个简单的无状态应用程序,使用 Kafka Streams 也可以帮助您显着减少代码库(即避免样板代码)。因此,建议尽可能使用 Kafka Streams,并且仅在 Kafka Streams 对于您的用例来说不够灵活时才回退到消费者/生产者。
做同一件事有不同的方法,具有不同的抽象和功能级别。
这是在Kafka与Kafka Streams中执行相同操作(将字符串拆分为两个单独的字段)的并排比较(为了更好地衡量,它也显示在ksqlDB中执行此操作)
| 归档时间: |
|
| 查看次数: |
3124 次 |
| 最近记录: |