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

验证

相关推荐
Fireworkitte39 分钟前
Kafka的ISR、OSR、AR详解
分布式·kafka·ar
Fireworkitte43 分钟前
org.apache.kafka.clients 和 org.springframework.kafka 的区别
kafka·apache
Dajiaonew6 小时前
Spring AI RAG 检索增强 应用
java·人工智能·spring·ai·langchain
Java小白程序员15 小时前
Spring Framework :IoC 容器的原理与实践
java·后端·spring
小李是个程序18 小时前
登录与登录校验:Web安全核心解析
java·spring·web安全·jwt·cookie
ciku18 小时前
Spring AI 集成阿里云百炼平台
人工智能·spring·阿里云
克拉克盖博21 小时前
chapter03_Bean的实例化与策略模式
java·spring·策略模式
创码小奇客21 小时前
架构师私藏:SpringBoot 集成 Hera,让日志查看从 “找罪证” 变 “查答案”
spring boot·spring cloud·trae
小兔兔吃萝卜1 天前
Spring 创建 Bean 的 8 种主要方式
java·后端·spring
2301_793086871 天前
SpringCloud 02 服务治理 Nacos
java·spring boot·spring cloud