Stream
概述
https://spring.io/projects/spring-cloud-stream#overview
https://docs.spring.io/spring-cloud-stream/docs/current/reference/html/
Stream解决什么问题?
当系统中使用多个不同的MQ时,使用spring cloud stream可以屏蔽 不同消息中间件的差异,统一消息的编程模型;
what
Spring Cloud Stream is a framework for building highly scalable event-driven microservices connected with shared messaging systems.
Spring Cloud Stream 是一个消息驱动的微服务框架;
应用程序 通过inputs/outputs 与 SpringCloudStream的binder进行交互;
通过配置进行binding,SpringCloudStream的binder负责与MQ交互;
目前仅支持 RabbitMQ、Kafka;
设计思想
标准MQ
生产者与消费者 通过Message 传递内容;
Message走特定的通道MessageChannel;
Message生产者生产Message,Message订阅者消费Message;
为什么要用SpringCloudStream?
假设系统同时使用RabbitMQ、Kafka,由于这2个MQ的架构不同(比如RabbitMQ有exchange、Kafka有Topic和Partitions);
不同MQ的差异导致实际项目开发造成了困扰,比如要将一种MQ的内容迁移至另一种MQ,无疑是一场灾难;
此时MQ与系统严重耦合,而SpringCloudStream提供了一种解耦的方式;
How
在没有Binder的情况下,Spring应用要与具体的MQ进行交互,不同的MQ有差异;
通过 定义Binder作为中间层,完美实现了 应用程序与MQ 的隔离;
通过 向应用程序暴露统一的channel,使得应用程序不需要考虑不同MQ的差异;
(Input:消费者、Output:生产者)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。