Java Spring Kafka vs.Kafka客户
我有一个基于spring boot的应用程序,需要使用/生成Kafka上的事件。 我对图书馆的选择犹豫不决 直接使用Kafka客户端似乎很简单,无需管理spring Kafka和Kafka客户端之间的兼容性矩阵:Java Spring Kafka vs.Kafka客户,java,spring-boot,apache-kafka,spring-kafka,Java,Spring Boot,Apache Kafka,Spring Kafka,我有一个基于spring boot的应用程序,需要使用/生成Kafka上的事件。 我对图书馆的选择犹豫不决 直接使用Kafka客户端似乎很简单,无需管理spring Kafka和Kafka客户端之间的兼容性矩阵: 另一方面,使用SpringKafka有助于项目规范化使用Kafka的配置属性,并为测试添加嵌入式Kafka 在spring引导中使用spring Kafka而不是直接使用Kafka客户端还有其他原因吗?基本上,spring Kafka项目可以帮助您应用核心spring概念(依赖项
在spring引导中使用spring Kafka而不是直接使用Kafka客户端还有其他原因吗?基本上,spring Kafka项目可以帮助您应用核心spring概念(依赖项注入和声明性) -它提供了一个“模板”,作为发送消息的高级抽象。 -它还支持带有@KafkaListener注释和“侦听器容器”的消息驱动POJO 对于熟悉JMS的人,您将看到与Spring中针对其他消息传递框架的JMS支持的相似之处。 如果您有spring开发人员,他们使用spring kafka和使用嵌入式kafka进行测试会更加方便 spring Kafka减少了技术/冗余代码:您可以用更少的代码行实现同样的目标。 - SpringKafka通过配置帮助您控制大多数Kafka设置。
它简化了所有的错误处理和事务管理。我对SpringAPI有点恼火,可能是因为我自己的无知,但似乎spring框架实际上阻止了某些设计 在这种情况下,我想为我的消费者创建一个decorator,它处理一些跨领域的问题,比如根据我收到的消息中的元数据设置日志上下文 spring kafka中的@KafkaListener注释似乎与该方法不兼容,但我不确定直接使用kafka客户端是否能解决问题
我不想使用AOP(AOP是一种应该被纠正的疾病)。使用普通客户端,您可以更好地控制如何使用对象,并且不会被Spring生态系统和注释所束缚。顺便说一句,Spring并不是更高级别kafka客户端的唯一选项。如果您使用Spring引导进行依赖关系管理,就不用担心版本冲突了。您可以使用可传递提供的客户端库,或使用属性重写版本。