Producer的用途大家都很清楚,主要就是生产消息,那么分布式模式下与单队列模式不一样,如何能够充分利用分布式的优势,将生产的消息分布到不同的队列下呢?Rocket-MQ提供了3种不同模式的Producer:
1. NormalProducer
2. OrderProducer
3. TransactionProducer
一、数据结构
1. TopicPublicInfo:仅仅是Producer使用,保存了messageQueue列表
2.MessageQueue:公用组件,保存了Queue的标识信息,<topic、brokerName、queueId>
3.QueueData:包含了Queue的brokerName,queue的读写数目等信息
4.BrokerData:包含了broker的名字,IP,等信息
二、主要模块
根据<clientId(IP@instanceId), group>每一个DefaultMQProducer有2层的分发: