概述
屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。
在没有Binder这个概念的情况下,SpringBoot应用要直接与消息中间件进行信息交互的时候,由于各消息中间件构建的初衷不同,他们的实现细节上有较大差异,通过定义Binder作为中间层,完美实现了应用程序与消息中间件细节之间的隔离。Stream对消息中间件的进一步封装,做到代码层面对中间件的无感知,甚至于动态切换中间件,使得微服务开发的高度解耦。
- Binder
很方便的连接中间件,屏蔽差异 - Channel
通道,是QUEUE一种抽象,在消息通讯系统中即使实现存储和转发的媒介,通过Channel对Queue进行配置 - Source Sink
可以理解为参照对象是Stream自身,从Stream发布消息就是输出,接收消息就是输入
消息驱动之生产者
1.pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
- yaml
server:
port: 8801
spring:
application:
name: cloud-stream-provider
cloud:
stream:
binders: # 在此处配置要绑定的rabbitmq的服务信息;
defaultRabbit: # 表示定义的名称,用于于binding整合
type: rabbit # 消息组件类型
environment: # 设置rabbitmq的相关的环境配置
spring