首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

RocketMQ 生产者 Producer 启动过程(1)

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 还有可以设置其他的参数,这里就不说明了。
返回列表