首页>>后端>>SpringBoot->springcloudstream用的多吗?

springcloudstream用的多吗?

时间:2023-12-02 本站 点击:0

Spring Cloud Stream介绍

Spring Cloud Stream是创建消息驱动微服务应用的框架。Spring Cloud Stream是基于spring boot创建,用来建立单独的/工业级spring应用,使用spring integration提供与消息代理之间的连接。本文提供不同代理中的中间件配置,介绍了持久化发布订阅机制,以及消费组以及分割的概念。 将注解@EnableBinding加到应用上就可以实现与消息代理的连接,@StreamListener注解加到方法上,使之可以接收处理流的事件。

原版:

翻译:

PS:生产者yml配置

PS: Barista接口为自定义管道

PS: 生产者消息投递

PS: Spring Boot应用入口

PS:消费者yml配置

PS: Barista接口为自定义管道

PS: 消费者消息获取

PS: Spring Boot应用入口

SpringCloud(25)——Stream介绍

当我们的分布式系统建设到一定程度了,或者服务间是通过异步请求来通讯的,那么我们避免不了使用MQ来解决问题。

假如公司内部进行了业务合并或者整合,需要服务A和服务B通过MQ的方式进行消息传递,而服务A用的是RabbitMQ,服务B用的是Kafka,那么我要在服务里同时使用两个消息组件吗?

有没有一种技术让我们不再关注具体MQ的细节,只需要用一种适配绑定的方式呢?

当然有,cloud Stream就解决了这个问题。

官网地址:

官方定义SpringCloud Stream是一个构建消息驱动微服务的框架。

应用程序通过inputs或者outputs来与SpringCloud Stream中的binder对象交互。

通过我们配置来binding(绑定),而SpringCloud Stream的binder对象负责与消息中间件交互。

所以,我们只需要搞清楚如何与SpringCloud Stream交互就可以方便使用消息驱动的方式。

而通过Spring Interation来连接消息代理中间件以实现消息事件驱动。

SpringCloud Stream为一些供应商的消息中间件产品提供了个性化的自动化配置实现,引用了发布-订阅、消费组、分区的三个核心概念。

但是目前仅支持RabbitMQ、Kafka

在没有绑定器这个概念的情况下,我们的SpringBoot应用

要直接与消息中间件进行信息交互的时候,由于各消息中间件构建的初衷不同,它们的实现细节上会有较大的差异性。

通过定义绑定器作为中间层,完美地实现了 应用程序与消息中间件细节之间的隔离 。

通过向应用程序暴漏统一的Channel通道,使得应用程序不需要再考虑各种不同的消息中间件实现。

通过定义绑定器Binder作为中间层,实现了应用程序与消息中间件细节之间的隔离

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

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

Source和Sink:简单的可理解为参照对象是SpringCloud Stream自身,从Stream发布消息就是输出,接受消息就是输入。

SpringCloud | 消息驱动——Stream

在微服务的架构下,原有单一的应用被拆分成了多个服务,所以微服务之间的消息传递也越来越频繁。

为了解决这个问题,就选择消息中间件——Stream。

通过消息中间件就可以存储和转发微服务之间的异步数据,使得微服务之间不用直接通信,从而使微服务的应用集中在一处。

当微服务A向微服务B发送消息时,若网络不可用或微服务B不在线,则消息中间件会存储消息,直到连接变得可用或微服务B恢复,消息中间件在将消息转发到微服务B上。

这样就保障了消息的可靠性,同时,也避免了微服务A等待微服务B处理消息而造成等待阻塞,能够保证系统故障时消息的正常传输。

同时Spring Cloud Stream支持多种消息中间件的整合,例如:Kafka、RabbitMQ等;继承了Spring应用的框架理念,实现基于注解驱动框架。

1、什么是消息驱动开发

2、Spring Cloud Stream简介

3、使用“发布-订阅”模式

每一个 不曾起舞的日子,都是对生命的辜负。一个人知道自己为什么而活,就可以忍受任何一种生活。其实人跟树是一样的,越是向往高处的阳光,它的根就越要伸向黑暗的地底。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/SpringBoot/9884.html