Binder机制4---Framework层

Spring Cloud Stream Kafka(3.2.2 版本)是基于 Kafka 的流处理框架,而 spring - cloud - stream - binder - kafka - reactive 与之相关,是 Spring Cloud Stream 针对 Kafka 消息中间件的响应式绑定器。 ### 功能介绍 Spring Cloud Stream 通过 binder 机制将管道适配到指定的消息中间件,spring - cloud - stream - binder - kafka - reactive 负责与 Kafka 消息中间件交互,相当于在管道和 Kafka 之间加了一缓冲,使上不需要关注底 Kafka 的差异,当 Kafka 相关配置变动时,只需要替换 binder 即可,业务代码不需要任何改动。它主要涉及发布 - 订阅、消费组、分区三个核心概念,借助 spring - integration 来连接 Kafka 消息代理中间件以实现消息事件驱动 [^3]。 ### 使用指南 #### 1. 依赖引入 在项目的`pom.xml`文件中添加相关依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream-binder-kafka-reactive</artifactId> <version>对应版本号</version> </dependency> ``` #### 2. 配置 Kafka 消费者 可以在`application.properties`或`application.yml`中配置 Kafka 消费者信息,例如: ```properties spring.kafka.consumer.groupId = cloud - 1 spring.kafka.consumer.keyDeserializer = org.apache.kafka.common.serialization.StringDeserializer spring.kafka.consumer.valueDeserializer = org.apache.kafka.common.serialization.StringDeserializer ``` 也可以通过 Java 代码配置,示例如下: ```java import org.springframework.kafka.annotation.KafkaListener; import org.springframework.stereotype.Component; @Component public class KafkaConsumerListener { @KafkaListener(topics = "${kafka.topic}") public void onMessage(String message) { System.out.print("kafka 消费者监听器,接收到消息:" + message); } } ``` #### 3. 消息发布与订阅 通过 output 输出管道和 input 输入管道来发布和订阅消息。使用响应式编程时,有利于使用 Project Reactor 提供的事件流抽象(如 Flux 和 Mono),命令函数在每个单独的事件上触发,而 reactive 函数只触发一次 [^2][^3]。 ### 问题解决 在使用过程中可能会遇到各种问题,比如版本兼容性问题。从 Spring Cloud 2020 版本开始,Spring Cloud Stream 的版本升级至 3.1.0 以上版本,`@StreamListener`上面增加了`@Deprecated`注解,不赞成使用,有可能接下来的版本会删除掉,需要根据新版本的使用方式进行调整 [^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值