一、启动流程
1.1 默认启动类解析
查看这个start 的引用可以发现它是基于 DefaultMQProducer 这个类创建的,即需要通过这个类创建 Producer 并发送消息
同时可以看到这个类中定义了各种消息的发送方法和默认参数
1.2 默认参数解析
参数名称 | 参数作用 |
producerGroup | 生产者所属组 |
createTopicKey | 默认Topic |
defaultTopicQueueNums | 默认主题在每一个Broker队列数量 |
sendMsgTimeout | 发送消息默认超时时间,默认3s |
compressMsgBodyOverHowmuch | 消息体超过该值则启用压缩,默认4k |
retryTimesWhenSendFailed | 同步方式发送消息重试次数,默认为2,总共执行3次 |
retryTimesWhenSendAsyncFailed | 异步方法发送消息重试次数,默认为2 |
retryAnotherBrokerWhenNotStoreOK | 消息重试时选择另外一个Broker时,是否不等待存储结果就返回,默认为false |
maxMessageSize | 允许发送的最大消息长度,默认为4M |
1.3 代码跟踪
代码:DefaultMQProducerImpl#start
点开 MQClientManager,可以看到整个JVM中只有一个 MQClientManager 实例,维护一个MQClientInstance缓存表
查看MQClientInstance,发现其封装了RocketMQ网络处理API,是消息生产者和消息消费者与NameServer、Broker打交道的网络通道