RocketMQ系列之框架解析

在正式讲解SCA RocketMQ之前,很有必要讲一下SpringCloudStream,它是SC体系中的一个框架,用于构建和共享消息传递系统连接的高度可伸缩的时间驱动微服,它的目的就一个,也是它为什么出现的原因:简化消息业务在SpringCloud应用程序中的开发量


Spring Cloud Stream

架构图剖析

 

看图能知道,应用程序通过SpringCloudStream(下文称:SCS)注入的输入通道input和output输出通道与消息中间件Middleware进行通信,消息通道通过特定的中间件绑定器Binder实现了链接到外部代理,这里可以参考我上一篇文章,有源码是这么实现的,附上文章链接:

RocketMQ系列之消息发送/消费初体验_阿小冰的博客-CSDN博客RocketMQ系列之消息发送/消费初体验https://blog.csdn.net/qq_38377525/article/details/123253718SCS的实现其实就是基于发布/订阅机制,这个机制在很多地方都有用到,其核心是由四个部分组成的:Spring Messaging和Spring Integration、SCS自己的Binders和Bindings

①Spring Messaging:这个是Spring Framework中的统一消息编程模型,其核心类如下:

  • Message:消息对象,包含消息头Header和消息体Payload
  • MessageChannel:消息通道接口,用于接收消息,提供send()将消息发送至消息通道
  • MessageHandler:消息处理器接口,用于处理消息逻辑

②Spring Integration:这个是Spring Framework中用于支持企业集成的一种拓展机制,其作用就是提供一个简单的模型来构建企业集成解决方案的,当然它对SpringMessaging也进行了拓展

  • MessageDispatcher:消息分发接口,作用是分发消息和添加删除消息的处理器
  • MessageRouter:消息路由接口,定义默认的输出消息通道
  • Filter:消息的过滤注解,用于配置过滤消息的表达式
  • Aggregator:消息的聚合注解,用于将多条消息聚合成一条
  • Splitter:消息的分割,用于将一条消息拆分成多条

③Binders:目标绑定器,负责与外部消息中间件系统集成的组件

  • doBindProducer:绑定消息中间件客户端发送消息模块
  • doBindConsumer:绑定消息中间件客户端接收消息模块 

④Bindings:外部消息中间件与程序提供的消息生产者和消费者(是Binder创建)之间的桥梁


说到这里,就要补充一点了,SCS提供了Kafka和Rabbit的Binder,用于集成Kafka和RabbitMQ。然后SCA(SpringCloudAlibaba)自行添加了RocketMQ的Binder,和SCS做集成


Spring Cloud Alibaba RocketMQ

架构图剖析

 对里面的各个模块,需要着重讲一下:

  • MessageChannel(output):写了output,应该知道是啥意思了,它是个消息通道,而且是负责发送消息的
  • MessageChannel(input):同样是消息通道,不过input这个是用来订阅消息的
  • Binder bindProducer:目标绑定器,就是将从发送通道出来的消息发送到RocketMQ消息服务器上
  • Binder bindConsumer:同样也是目标绑定器,将接收到RocketMQ中的消息推送给订阅通道

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值