赞
踩
上回书说到Spring Cloud Stream,一个Spring提供的简单易用的消息编程模型,也算是一种规范吧,其内部是基于发布/订阅模型实现。如果不熟悉,咱可以翻翻上回书哈。
RocketMQ也是根据我们上面说的Spring Cloud Stream的规范做了相应的自己的实现,这里咱们就不展开细说了,有兴趣大家可以去翻翻源码。RocketMQ 由于对应的Binder类实现,可以说是集成了消息发送,消息订阅。为了方便大家去阅读源码,我简单的跟大家说一下。
RocketMQMessageChannelBinder类根据规范完成RocketMQMessageHandler的创建和初始化,RocketMQMessageHandler 是消息处理器MessageHandler(上期有提到)的具体实现,其主要作用是转化消息格式并且发送消息,此类中持有RocketMQTemplate对象,RocketMQTemplate是对RocketMQ客户端API的封装。
是不是已经开始有点晕了?
简单来说,这个handler是一个很关键的类,它就是包含消息发送的逻辑处理,解析Message对象头中的参数,调用上面说的RocketMQTemplate中不同的消息发送接口。无论你是发送的顺序消息,事物消息,定时消息还是普通消息,都是由Message对象头(Header)中的属性决定,在我们业务代码创建Message的时候去设置。
划重点咯,如果大家有兴趣,可以把RocketMQMessageHandler这个类当作一个入口,就可以很轻松看到整个消息发送的流程。
同样,由RocketMQMessageChannelBinder类根据协议完成RocketMQInboundChannelAdapter(简称adapter)的创建和初始化,顾名思义,这个adapter适配器需要适配Spring
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。