作者:45度向上倾斜的世界取_872 | 来源:互联网 | 2023-09-03 12:45
SpringCloudStream简介 SpringCloudStream就是使用了基于消息系统的微服务处理架构。对于消息系统而言一共分为两类:基于应用标准的JMS、基
SpringCloudStream 简介
SpringCloudStream 就是使用了基于消息系统的微服务处理架构。对于消息系统而言一共分为两类:基于应用标准的 JMS、基于协议标准的 AMQP,在整个 SpringCloud 之中支持有 RabbitMQ、Kafka 组件的消息系统。利用 SpringCloudStream 可以实现更加方便的消息系统的整合处理,但是推荐还是基于 RabbitMQ 实现会更好一些。
为什么 SpringCloud 中要提供有一个类似于消息驱动的 SpringCloudStream 呢?
如果通过 Java 历史上的分布式的开发架构大家不难发现,对于消息系统,实际上最初的 SUN 公司是非常看中的,所以在 EJB 的时代里面专门提供有消息驱动 Bean(Message Driven Bean、MDB)利用消息驱动 Bean 可以进行消息的处理操作。利用消息驱动 bean 的模式可以简化用户的操作复杂度,直接传递一些各类的数据即可实现业务的处理操作。
于是在 SpringBoot 的之中为了方便开发者去整合消息组件,也提供有一系列的处理支持,但是如果按照这些方式来在 SpringCloud 之中进行消息处理,有些人会认为比较麻烦,所以在 SpringCloud 里面将消息整合的处理操作进行了进一步的抽象操作, 实现了更加简化的消息处理。
SpringCloudStream处理架构
最底层是消息服务,中间层是绑定层,绑定层和底层的消息服务进行绑定,顶层是消息生产者和消息消费者,顶层可以向绑定层生产消息和和获取消息消费。
Spring Cloud Stream + RabbitMQ
我们采用Spring Cloud Finchley.RELEASE ,Spring Boot 2.0.3.RELEASE 版本来开发,系统的设计思路是利用消息队列rabbitmq来解耦服务,来减缓消息直接到服务上的压力,我们没有直接对接mq来使用,而是采用了Spring Cloud Stream, 简单的来说,Spring Cloud Stream是构建消息驱动的微服务应用程序的框架,将消息整合的处理操作进行了进一步的抽象操作, 实现了更加简化的消息处理, 可以使用不同的代理中间件,它抽象了事件驱动的一些概念,对于消息中间件的进一步封装,可以做到代码层面对中间件的无感知,甚至于动态的切换中间件,切换topic。使得微服务开发的高度解耦,服务可以关注更多自己的业务流程。
- SpringCloud Stream+RabbitMQ简单整合
- SpringCloud Stream+RabbitMQ自定义通道
- SpringCloud Stream+RabbitMQ消息分组
- SpringCloud Stream+RabbitMQ消息分区