RocketMQ-消息发送基本流程
消息发送流程主要的步骤:验证消息、查找路由、消息发送(包括异常处理机制)
从org.apache.rocketmq.client.producer.DefaultMQProducer类的send方法开始追踪
1 | DefaultMQProducer#send |
默认消息发送以同步方式发送,默认超时时间为3s。
1 | private SendResult sendDefaultImpl( |
①消息校验
1 | public static void checkMessage(Message msg, DefaultMQProducer defaultMQProducer) |
①.1校验topic
1 | public static void checkTopic(String topic) throws MQClientException { |
②查找主题路由信息
1 | private TopicPublishInfo tryToFindTopicPublishInfo(final String topic) { |
②.1 TopicPublishInfo类
1 | orderTopic = false;// 是否是顺序消息 |
②.2 MQClientInstance#updateTopicRouteInfoFromNameServer()
1 | public boolean updateTopicRouteInfoFromNameServer(final String topic, boolean isDefault, |