RocketMQ 生产者 Producer 启动过程(1)
- UID
- 1066743
|
RocketMQ 生产者 Producer 启动过程(1)
MQProducer
从类关系中可以看出,MQProducer 有两种实现方式。一个是 DefaultMQProducer,另一个是 TransactionMQProducer。
DefaultMQProducer: 我们常用的生产者。
TransactionMQProducer:继承自 DefaultMQProducer,并支持事务消息。
下面我们来分析下 DefaultMQProducer 启动的过程。
启动示例
public class Producer {
public static void main(String[] args) throws UnsupportedEncodingException {
try {
DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
producer.setNamesrvAddr("....");
......
producer.start();
......
}catch(Exception e){}
}
}
创建 DefaultMQProducer 实例,然后制定一些参数,调用 start() 方法就开启了生产者。
DefaultMQProducer 参数分析
public class DefaultMQProducer extends ClientConfig implements MQProducer {
//producer 组名
private String producerGroup;
// Topic 名字,默认为“TBW102”
private String createTopicKey = MixAll.AUTO_CREATE_TOPIC_KEY_TOPIC;
// 创建 Topic 默认的4个队列
private volatile int defaultTopicQueueNums = 4;
// 发送消息超时时间
private int sendMsgTimeout = 3000;
// 当发送的消息大于 4K 时,开始压缩消息。
private int compressMsgBodyOverHowmuch = 1024 * 4;
//同步发送消息,发送失败时再尝试发送2次数
private int retryTimesWhenSendFailed = 2;
// 异步发送消息,发送失败时再尝试发送2次数
private int retryTimesWhenSendAsyncFailed = 2;
//发送broker消息存储失败时,是否尝试去试发送其他的broker
private boolean retryAnotherBrokerWhenNotStoreOK = false;
//最大允许发送字节数
private int maxMessageSize = 1024 * 1024 * 4; // 4M
DefaultMQProducer 中定义的类属性
producerGroup: 生产者组名
createTopicKey :Topic 名字,默认为“TBW102”
defaultTopicQueueNums :创建 Topic 默认的4个队列
sendMsgTimeout :默认发送消息3秒超时
compressMsgBodyOverHowmuch :当发送的消息大于 4K 时,开始压缩消息。
retryTimesWhenSendFailed :同步发送消息,发送失败时再尝试发送2次数。
retryTimesWhenSendAsyncFailed :异步发送消息,发送失败时再尝试发送2次数
retryAnotherBrokerWhenNotStoreOK :发送broker消息存储失败时,是否尝试去试发送其他的broker
DefaultMQProducer 还有可以设置其他的参数,这里就不说明了。 |
|
|
|
|
|