一文看懂RocketMQ生产者发送消息源码解析(上)

基于最新的release-4.7.1代码分析。


客户端是个单独模块


一文看懂RocketMQ生产者发送消息源码解析(上)



从UT看Producer API


阅读源码,不推荐从入口开始看到底,毕竟你太年轻,把握不住它的底。我们可以带着问题去研究源码:Producer是如何发消息的?


推荐从UT用例入手。通过这些小流程,debug查看关键流程即可。


RocketMQ客户端的Producer的所有测试用例都在DefaultMQProducerTest类,这就很方便我们快速了解Producer。


主要测试用例

一文看懂RocketMQ生产者发送消息源码解析(上)


Producer相关的UML图

一文看懂RocketMQ生产者发送消息源码解析(上)


  • 门面模式(Facade Pattern)
    给客户端提供了一个可以访问系统的接口,隐藏系统内部的复杂性。



接口MQProducer就是门面,客户端只要使用这个接口就可以访问Producer实现消息发送的相关功能,使用上不必再与其他复杂实现类打交道。


类DefaultMQProducer实现了接口MQProducer,方法实现大多没有业务逻辑,只是封装对其他实现类的方法调用,也可视为是门面。

Producer大部分业务逻辑实现都在类DefaultMQProducerImpl。


有时实现分散在很多内部类,不方便用接口来对外提供服务,就可仿照RocketMQ,使用门面模式隐藏内部实现,对外提供服务。



接口MQAdmin定义了一些元数据管理的方法,在消息发送过程会用到。

一文看懂RocketMQ生产者发送消息源码解析(上)

上一篇:【洛谷P1525】[NOIP2010]关押罪犯


下一篇:NFS客户端mount挂载深入