Spring Cloud -- Stream(14)

简介

Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架。它可以基于Spring Boot 来创建独立的,可用于生产的Spring 应用程序。他通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动。Spring Cloud Stream 为一些供应商的消息中间件产品提供了个性化的自动化配置实现,引用了发布-订阅、消费组、分区的三个核心概念。目前仅支持RabbitMQ、Kafka。简单来说,Spring Cloud Stream本质上就是整合了Spring Boot 和 Spring Integrantion,实现了一套轻量级的消息驱动的微服务框架。通过使用Spring Cloud Stream,可以有效简化开发人员对消息中间件的使用复杂度,让系统开发人员可以有更多的精力关注核心业务的开发。

为什么 SpringCloud 中要提供有一个类似于消息驱动的 SpringCloudStream 呢?

通过 Java 历史上的分布式的开发架构大家不难发现,对于消息系统,实际上最初的 SUN 公司是非常看中的,所以在 EJB 的时代里面专门提供有消息驱动 Bean(Message Driven Bean、MDB)利用消息驱动 Bean 可以进行消息的处理操作。利用消息驱动 bean 的模式可以简化用户的操作复杂度,直接传递一些各类的数据即可实现业务的处理操作。

于是在 SpringBoot 的之中为了方便开发者去整合消息组件,也提供有一系列的处理支持,但是如果按照这些方式来在 SpringCloud 之中进行消息处理,有些人会认为比较麻烦,所以在 SpringCloud 里面将消息整合的处理操作进行了进一步的抽象操作, 实现了更加简化的消息处理。

总结:SpringCloudStream 就是实现了 MDB 功能,同时可以更加简化方便的整合消息组件。

应用模型
Spring Cloud Stream由一个中间件中立的核组成。应用通过Spring Cloud Stream插入的input和output通道与外界交流。通道通过指定中间件的Binder实现与外部代理连接。

业务开发者不再关注具体消息中间件,只需关注Binder对应用程序提供的抽象概念来使用消息中间件实现业务即可。在这里插入图片描述
绑定器
==通过定义绑定器作为中间层,实现了应用程序与消息中间件细节之间的隔离。==通过向应用程序暴露统一的Channel通过,是的应用程序不需要再考虑各种不同的消息中间件的实现。当需要升级消息中间件,或者是更换其他消息中间件产品时,我们需要做的就是更换对应的Binder绑定器而不需要修改任何应用逻辑 。
目前只提供了RabbitMQ和Kafka的Binder实现

猜你喜欢

转载自blog.csdn.net/qq_38083545/article/details/86542450