irpas技术客

SpringCloud-SpringCloud Stream消息驱动的介绍(Day10)_临水而愚

网络 5631

SpringCloud Stream

SpringCloud官方定义Spring Cloud Stream是一个构建消息驱动微服务的框架。应用程序通过inputs或者 outputs 来与Spring Cloud Stream中binder对象交互。通过我们配置来binding(绑定),而Spring Cloud Stream 的binder对象负责与消息中间件交互。所以,我们只需要搞清楚如何与Spring Cloud Stream交互就可以方便使用消息驱动的方式。Spring Cloud Stream为一些供应商的消息中间件产品提供了个性化的自动化配置实现,引用了发布-订阅、消费组、分区的三个核心概念。目前仅支持RabbitMQ、 Kafka消息中间件。

标准的MQ模型(RabbitMQ,Kafka)

生产者/消费者之间靠消息媒介传递信息内容消息必须走特定的通道 - 消息通道 Message Channel消息通道里的消息如何被消费呢,谁负责收发处理 - 消息通道MessageChannel的子接口SubscribableChannel,由MessageHandler消息处理器所订阅。 Cloud Stream模型

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

Input对应消费者Output对应生产者 Spring Cloud Stream消息处理机制

Binder - 很方便的连接中间件,屏蔽差异。Channel - 通道,是队列Queue的一种抽象,在消息通讯系统中就是实现存储和转发的媒介,通过Channel对队列进行配置。Source 和 Sink - 简单的可理解为参照对象是Spring Cloud Stream自身,从Stream发布消息就是输出,接受消息就是输入。 编码API和常用注解 组成说明Middleware中间件,目前只支持RabbitMQ和KafkaBinderBinder是应用与消息中间件之间的封装,目前实行了Kafka和RabbitMQ的Binder,通过Binder可以很方便的连接中间件,可以动态的改变消息类型(对应于Kafka的topic,RabbitMQ的exchange),这些都可以通过配置文件来实现@Input注解标识输入通道,通过该输乎通道接收到的消息进入应用程序@Output注解标识输出通道,发布的消息将通过该通道离开应用程序@StreamListener监听队列,用于消费者的队列的消息接收@EnableBinding指信道channel和exchange绑定在一起


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #springcloud #Cloud #应用程序通过inputs或者 #outputs