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

验证

相关推荐
就叫飞六吧2 小时前
Spring Security 集成指南:避免 CORS 跨域问题
java·后端·spring
predisw5 小时前
kafka connect 大概了解
分布式·kafka
冷yan~5 小时前
GitHub文档加载器设计与实现
java·人工智能·spring·ai·github·ai编程
亚林瓜子6 小时前
AWS Elastic Beanstalk部署极简Spring工程(EB CLI失败版)
spring·云计算·aws·cli·eb
小萌新~~~~6 小时前
Spark缓存---cache方法
spring·缓存·spark
lichuangcsdn9 小时前
【springcloud学习(dalston.sr1)】Eureka 客户端服务注册(含源代码)(四)
学习·spring cloud·eureka
开开心心就好10 小时前
Word图片格式调整与转换工具
java·javascript·spring·eclipse·pdf·word·excel
张伯毅12 小时前
Flink SQL 将kafka topic的数据写到另外一个topic里面
sql·flink·kafka
一只码代码的章鱼13 小时前
spring -MVC-02
java·spring·mvc
IT光14 小时前
Redis 五种类型基础操作(redis-cli + Spring Data Redis)
java·数据库·redis·spring·缓存