spring cloud stream

背景

主要解决不同消息中间件切换问题。实现不同中间件的代码解耦。

链接: 支持的中间件

后文使用kafka测试。

引入依赖

xml 复制代码
     <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-stream-kafka</artifactId>
        </dependency>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

编写配置文件

配置文件

参考说明

yaml 复制代码
spring:
  application:
    name: streamDemo
  cloud:
    function:
      definition: streamDemo
    stream:
      bindings:
        streamDemo-out-0:
          destination: streamDemo
          group: ${spring.application.name}
        streamDemo-in-0:
          destination: streamDemo
          group: ${spring.application.name}
      kafka:
        binder:
          auto-create-topics: true
          replication-factor: 1
          brokers: kafkaServer:9092

生产者代码

java 复制代码
@Service
@Slf4j
public class MiddleMessageProducer {
    private static final String pvRecordChannel  =  "streamDemo-out-0";

    @Resource
    private StreamBridge streamBridge;


    public void saveLogInfo(String msg) {
        streamBridge.send( pvRecordChannel, MessageBuilder.withPayload(msg).build());
    }

}

消费者代码

java 复制代码
@Slf4j
@Component
public class MessageConsumer{
    @Bean
    public Consumer<String> streamDemo() {
        return request -> {
            log.info("收到消息:{}",request);
        };
    }
}

验证

相关推荐
☆cwlulu30 分钟前
Linux系统调用与C库I/O的底层奥秘
java·spring boot·spring
IT空门:门主3 小时前
Java AI 开发框架终极对比:Spring AI vs Spring AI Alibaba vs AgentScope-Java
java·人工智能·spring·spring ai·ai alibaba·agentscope-java
zzz_23683 小时前
【Spring】面试突击系列(三):Spring Web MVC 深度解析
前端·spring·面试
biubiubiu07064 小时前
SpringBoot 3.5.4 整合Quartz 定时任务
java·spring boot·spring
用户398346161205 小时前
Go-Spring 实战第 18 课 —— App 使用:启动、配置与运行期扩展
spring·go
zzz_23685 小时前
【Spring】面试突击系列(一):IoC 与 DI 深度解析
java·spring·面试
RemainderTime6 小时前
Spring Boot脚手架集成 Spring Security实现生产级RBAC鉴权
spring boot·后端·spring
宸津-代码粉碎机6 小时前
Spring AI企业级Agent实战|多工具自动规划+并行调度落地,彻底解决复杂业务AI任务编排问题
java·大数据·人工智能·spring boot·python·spring
lixia0417mul26 小时前
flink接入spring体系
java·spring·flink
biubiubiu07066 小时前
自定义starter 可以导入SpringBoot直接使用
java·spring boot·spring