Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Kafka vs.Kafka客户_Java_Spring Boot_Apache Kafka_Spring Kafka - Fatal编程技术网

Java Spring Kafka vs.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 boot的应用程序,需要使用/生成Kafka上的事件。 我对图书馆的选择犹豫不决

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

另一方面,使用SpringKafka有助于项目规范化使用Kafka的配置属性,并为测试添加嵌入式Kafka


在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引导进行依赖关系管理,就不用担心版本冲突了。您可以使用可传递提供的客户端库,或使用属性重写版本。