springcloud-stream初步配置

本文介绍了Spring Cloud Stream的基本概念和使用,包括消息生产者、消费者、消息分组和分区的配置。Spring Cloud Stream提供了一种解耦合的方式,使得应用能与不同消息中间件进行交互,降低了迁移成本。通过@EnableBinding和@StreamListener等注解,可以轻松创建消息生产者和消费者,并通过配置实现消息的分组和分区,以满足不同业务场景的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring Cloud Stream

消息中间件主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。不同的中间件其实现方式,内部结构是不一样的。

如果用了两个消息队列的其中一种,后面的业务需求,我想往另外一种消息队列进行迁移,这时候无疑就是一个灾难性的,一大堆东西都要重新推倒重新做,因为它跟我们的系统耦合了,这时候springcloud Stream 给我们提供了一种解耦合的方式。

Spring Cloud Stream由一个中间件中立的核组成。应用通过Spring Cloud Stream插入的input(相当于消费者consumer,它是从队列中接收消息的)和output(相当于生产者producer,它是从队列中发送消息的。)通道与外界交流。通道通过指定中间件的Binder实现与外部代理连接。业务开发者不再关注具体消息中间件,只需关注Binder对应用程序提供的抽象概念来使用消息中间件实现业务即可。

在这里插入图片描述

最底层是消息服务;中间层是绑定层,绑定层和底层的消息服务进行绑定,是实现了多种消息中间件的工具,这一层的代码不需要自己写,更改中间件就更换绑定器即可;顶层是消息生产者和消息消费者,顶层可以向绑定层生产消息和和获取消息消费


消息生产者

新建springcloud的stream_producer模块。

使用rabbitmq-server.bat启动rabbitmq,访问 http://localhost:15672/#/

  1. 依赖

    <dependency>         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-stream</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
    </dependency>
    
  2. application.yml

    server:
      port: 7001 #服务端口
    spring:
      application:
        name: stream_producer #指定服务名
      rabbitmq:
        addresses: 127.0.0.1
        username: guest
        password: guest
      cloud:
        stream:
          bindings:
            output:
              destination: itcast-default  #指定消息发送的目的地,在rabbitmq中,发送到一个itcast-default的exchange中
            myoutput: #自定义的消息通道,默认是output
              destination: itcast-custom-output 
              producer:
                partition-key-expression: payload  #分区关键字 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值