Spring-Kafka 与 kafka-clients 直接对比

bri*_*bro 3 java apache-kafka spring-boot spring-kafka

我有一个基于 spring-boot 的应用程序,需要在 Kafka 上消费/生成事件。我正在犹豫图书馆的选择。

直接使用 Kafka-clients 似乎很简单,而无需管理 spring-Kafka 和 Kafka-clients 之间的兼容性矩阵:

另一方面,使用 spring-Kafka 帮助项目规范化使用 Kafka 的配置属性并添加嵌入式 kafka 进行测试。

是否有任何其他原因使用 spring-Kafka 进行 spring-boot,而不是直接使用 kafka-clients ?

小智 5

基本上,spring-kafka 项目可以帮助您应用核心 Spring 概念(依赖注入和声明)——它提供了一个“模板”作为发送消息的高级抽象。- 它还通过@KafkaListener 注释和“侦听器容器”为消息驱动的 POJO 提供支持。

对于熟悉 JMS 的人,您将看到与 Spring 中其他消息传递框架的 JMS 支持的相似之处。如果你有 spring 开发人员,他们会更舒服地使用 spring-kafka 并使用嵌入式 Kafka 进行测试。

spring-Kafka 减少了技术/冗余代码:您可以用更少的代码行实现相同的目标。- https://docs.spring.io/spring-kafka/reference/html/#even-quicker-with-spring-boot

spring-Kafka 可帮助您通过配置控制大部分 Kafka 设置。它简化了所有错误处理和事务管理。