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);
        };
    }
}

验证

相关推荐
mqiqe3 分钟前
【Spring AI MCP】六、SpringAI MCP 服务端 STDIO & SSE
java·人工智能·spring
努力发光的程序员19 分钟前
互联网大厂Java面试场景:微服务与Spring Cloud技术点解析
spring cloud·grafana·prometheus·微服务架构·jwt·api网关·jaeger
草原印象21 分钟前
Spring Cloud、Spring Cloud Alibaba微服务实战
spring·spring cloud·微服务
爱吃烤鸡翅的酸菜鱼2 小时前
Spring Boot 实现 WebSocket 实时通信:从原理到生产级实战
java·开发语言·spring boot·后端·websocket·spring
摇滚侠11 小时前
2025最新 SpringCloud 教程,负载均衡 API 测试,笔记10
笔记·spring cloud·负载均衡
daidaidaiyu11 小时前
Spring IOC 源码学习一 基本姿势
java·spring
间彧11 小时前
Spring AOT + GraalVM Native Image:云原生Java的效能引擎
spring
百***618712 小时前
SpringCloud Gateway 集成 Sentinel 详解 及实现动态监听Nacos规则配置实时更新流控规则
spring cloud·gateway·sentinel
百***359415 小时前
【Java EE】Spring请求如何传递参数详解
spring·java-ee·lua
老友@15 小时前
深入 Spring AI:架构与应用
人工智能·spring·ai·架构