spring cloud stream

背景

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

在这里插入图片描述
后文使用kafka测试。

引入依赖

     <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>

编写配置文件

配置文件

参考说明

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

生产者代码

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

}

消费者代码

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

验证

相关推荐

  1. SpringCloudStream整合MQ(待完善)

    2024-02-07 06:40:02       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-07 06:40:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-07 06:40:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-07 06:40:02       87 阅读
  4. Python语言-面向对象

    2024-02-07 06:40:02       96 阅读

热门阅读

  1. Unreal Engine 中的插值方法示例

    2024-02-07 06:40:02       45 阅读
  2. 关联语句join与合并语句union

    2024-02-07 06:40:02       44 阅读
  3. Linux系统防火墙设置

    2024-02-07 06:40:02       50 阅读
  4. apache_exporter安装说明

    2024-02-07 06:40:02       42 阅读
  5. [C++] sqlite3_get_table 的使用

    2024-02-07 06:40:02       45 阅读
  6. 跟着GPT学设计模式之原型模式

    2024-02-07 06:40:02       57 阅读
  7. 如何使用postman进行接口调试

    2024-02-07 06:40:02       55 阅读
  8. 【wu-easy-excel-starter】1.2.2-JDK17-SNAPSHOT

    2024-02-07 06:40:02       46 阅读
  9. C/C++ - 容器set

    2024-02-07 06:40:02       43 阅读
  10. 零基础学Python之面向对象

    2024-02-07 06:40:02       43 阅读
  11. CGAL::2D Arrangements-3

    2024-02-07 06:40:02       50 阅读