SpringCloud Stream消息驱动

SpringCloud Stream提供了一种屏蔽底层消息中间件差异的机制,使得在项目中使用消息驱动变得简单。本文将介绍消息驱动的设计思想,工作流程,常用注解以及Stream流的分组消费与持久化,帮助理解如何在不同中间件之间统一消息编程模型。

目录

什么是消息驱动

消息驱动的设计思想

消息驱动的工作流程

常用注解

Stream流的分组消费与持久化 


什么是消息驱动

 

屏蔽底层消息中间件的差异,降低中间件切换成本,统一消息的编程模型 

 

 

消息驱动的设计思想

 

标准的MQ在生产者-消费者之间通过特定的消息媒介传递信息。但一个足够大的项目可能会用到多个消息中间件,Stream通过binder屏蔽底层差异解决了跨消息队列中间件传递消息的问题。

 

消息驱动的工作流程

 

Binder:很方便的连接中间件,屏蔽差异

Channel:通道,它是队列Queue的一种抽象,在消息通讯系统中就是实现存储和转发的媒介,通过Channel对队列进行配置

Source和Sink:Source作用于生产者业务上,Sink作用于消费者业务上

 

 

常用注解

 

 

 

Stream流的分组消费与持久化 

 

微服务应用可以放置在同一个group组中,这样能保证消息只会被其中的一个应用消费一次,不同的组是可以消费的,同一个组内会发生竞争关系,同一个组只能有一个被消费

假设有一个生产者名为A,两个消费者名为B和C,你可以在B和C的yml文件中,配置C为一个分组,但不配置B为分组。当配置完成后,启动生产者A和消费者B服务。此时B正常接收到了A的消息,如果你这时再启动消费者C,消费者C会搜寻A发给B的消息,进行再次消费。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值