标签:SpringCloudStream Stream spring 应用程序 MQ SpringCloud 驱动 Message
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:生产者)
标签:SpringCloudStream,Stream,spring,应用程序,MQ,SpringCloud,驱动,Message 来源: https://www.cnblogs.com/anpeiyong/p/16580477.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。