springboot+SpringCloud Stream消息驱动介绍和使用
SpringCloud Stream作用:
屏蔽底层消息中间件的差异,降低切换版本,统一消息的编程模型
SpringCloud Stream到底是干什么的,这里我就用大家用于懂的话进行讲解,比如说如果在多个项目中使用的消息中间件不一样,那么我们要想让这两个业务直接进行交流那么会很麻烦,但是引入SpringCloud Stream就不用管你的两个项目到底是什么消息中间件了,我只是通过SpringCloud Stream进行交流就可以。屏蔽底层消息中间件的差异,降低切换版本,统一消息的编程模型,通过定义绑定器Binder作为中间层,实现了应用程序与消息中间件细节之间的隔离。
SpringCloud Stream目前只支持RabbitMQ和kafka
Stream中的消息通信方式遵循了发布-订阅模式
SpringCloud Stream标准流程图
解读:生产者生产的消息不再直接交给消息中间件,而是交给SpringCloud Stream进行处理,消费者也不再直接获取消息中间件内容而是获取SpringCloud Stream进行解析。
Binder:很方便的连接中间件,屏蔽差异
Channel:通道,是队列Queue的一种抽象,在消息通讯系统中就是实现存储和转发的媒介,通过对Channel对队列进行配置
Source和Sink:简单的可理解为参照对象是Spring Cloud Stream自身,从Stream发布消息就是输出,接受消息就是输入
实战案例:
首先安装好并启动消息中间件
sudo rabbitmq-server