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

验证

相关推荐
2601_9609067212 小时前
中国智能投影市场(不含激光电视)全渠道销量同比暴跌21.4%
kafka·etcd·consul·storm
霸道流氓气质14 小时前
Spring AI Alibaba Copilot 项目使用指南
人工智能·spring·copilot
空中湖17 小时前
Spring AI 多模型接入实战:OpenAI、Ollama、通义千问切换只需改配置
java·人工智能·spring
一路向北North17 小时前
Spring Security OAuth2.0(25):分布式系统授权-拓展用户信息
java·后端·spring
@灯神19 小时前
SpringAI系列|第1篇:SpringAI概述与快速上手
java·人工智能·spring·ai·ai编程
rebibabo20 小时前
Java进阶(1) | 微服务入门:从单体到 Spring Cloud 全家桶
spring cloud·微服务·nacos·openfeign·服务注册与发现·java进阶·单体架构
不才不才不不才20 小时前
Spring AI 实战(7):向量库怎么选?PgVector/Redis/Milvus 横向对比
java·人工智能·spring·ai
XS03010621 小时前
Spring AI第一课
数据库·人工智能·spring
半夜修仙1 天前
Spring集成邮箱功能
java·开发语言·spring boot·spring·rabbitmq·github·maven
宠友信息1 天前
从重复请求到订单同步看内容社区源码的处理思路
java·spring boot·redis·后端·mysql·spring