Spring Cloud Stream Core学习笔记

官网

构造图

在这里插入图片描述
使用Binder作为中间件进行连接应用以及外界

Binder

一谈到中间件就得说道spi,跟api一样也是接口,但是spi用于进行扩展的接口。
在这里插入图片描述
相关配置
在这里插入图片描述
扩展接口

在这里插入图片描述
路径发现
在这里插入图片描述

参考

SPI存在的意义

比如这里面也支持kafka,当实现完功能之后只需要切换不同的配置,即可更换不同的实现。这就是spi的用处。

Spring Cloud Stream注解

注解 作用
@EnableBinding (参数看表格第三行) 在这里插入图片描述
@Input,@OutPut当注入MessageChannel需要注意 在这里插入图片描述在这里插入图片描述
Source, Sink, and Processor 在这里插入图片描述
@StreamListener 在这里插入图片描述
@InboundChannelAdapter(下面那个方法变压器,就是对消息进行加工) 在这里插入图片描述
@Payload, @Headers and @Header,@SendTo 在这里插入图片描述

配置

spring:
      binders:
        rabbitmq:
          type: rabbit

这个就是SPI指定rabbit扩展

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
还有包括rabbitmq的配置咯~

官网配置

  1. Consumer properties
  2. Producer Properties

批量预处理能力

比如说大批量处理消息,可以通过

  • 增加消费者数量
  • 提高消费者消费单个消息的速度
  • 让消费者有更大的 prefetch 值

prefetch 值以及加大消费者的参数
在这里插入图片描述

参考文章

Dead-Letter Queue Processing

mq私信队列的处理,这里就要谈到TTL(Time To Live),消息的有效时间。当超过ttl之后会失效处理。

消息没有被及时消费的原因

a.消息被拒绝(basic.reject/ basic.nack)并且不再重新投递 requeue=false

b.TTL(time-to-live) 消息超时未消费

c.达到最大队列长度

这个本人没有详细的动手操作过,只能靠网上文章意淫了,西西~

就是当队列里头有死信的时候,会发布到对应设置的Exchange进行处理,路由到另一个队列。

参考文章

发布了212 篇原创文章 · 获赞 30 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/weixin_38336658/article/details/103886655
今日推荐