开发者学堂课程【微服务实战-RocketMQ Binder : RocketMQ Binder 的基本实现原理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/617/detail/9422
SCS介绍及RocketMQ Binder的基本实现原理
内容介绍:
一、 概括介绍
二、 详细过程
一、 概括介绍
主要围绕这两段代码进行分析。第一段代码涉及到消息的发送:
@GetMapping("/sendMsg")
public boolean sendString(@RequestParam String msg) {
return source.output().send(MessageBuilder.
withPayload("test').build());
}
通过 source output 的方法将消息发送给 RocketMQ ,然后通过注解,把 RocketMQ 的消息进行了消费。
@StreamListener(value=Sink.INPUT)
public void receive(String str) {
System.out.println("Received:"+ str);
}
二、 详细过程
首先构造一个 Spring Message。并把它发送到了 source output 的方法提供的 MssageChannel 中。
会被 Sending Handler 的 Message Handler 订阅。订阅之后,它会委托给RocketMQ 般的内部。
构造的 RocketMQ MessageHandler这个 Message Handler 处理,处理时会把 Spring 的消息转化成 RocketMQ 的消息,转化为之后它会发送到 RocketMQ 的 Broker,之后 RocketMQ Binder 内部构造的Message Producer去订阅发送的这个消息,订阅到之后,它会把 RocketMQ 的消息转化成 Spring 的消息,转化为之后它会发到 input MessageChannel 中,
最后 StreamListener 这个注解它会被构造成
streamlistenermassagehandler 拿这个MessageHandler 去订阅 input MessageChannel 作业务逻辑的处理。