//package com.fdkankan.common.rocketmq.producer;
//
//import org.apache.rocketmq.client.exception.MQClientException;
//import org.apache.rocketmq.client.producer.DefaultMQProducer;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
////@Configuration
//public class Producer {
//
//    private static Logger log = LoggerFactory.getLogger("programLog");
//
//    @Value("${rocketmq.name-srv-addr}")
//    private String nameSrvAddr;
//    @Value("${rocketmq.producer.group.testGrop}")
//    private String producerGroupName;
//    /**
//     * 消息最大大小，默认4M
//     */
//    @Value("${rocketmq.producer.maxMessageSize}")
//    private Integer maxMessageSize;
//    /**
//     * 消息发送超时时间，默认3秒
//     */
//    @Value("${rocketmq.producer.sendMsgTimeout}")
//    private Integer sendMsgTimeout;
//    /**
//     * 消息发送失败重试次数，默认2次
//     */
//    @Value("${rocketmq.producer.retryTimesWhenSendFailed}")
//    private Integer retryTimesWhenSendFailed;
//
//    /**
//     * 初始化向rocketmq发送普通消息的生产者
//     */
//    @Bean("testProducer")
//    public DefaultMQProducer testProducer() throws MQClientException {
//        /*
//         * 一个应用创建一个Producer，由应用来维护此对象，可以设置为全局对象或者单例<br>
//         * 注意：ProducerGroupName需要由应用来保证唯一<br>
//         * ProducerGroup这个概念发送普通的消息时，作用不大，但是发送分布式事务消息时，比较关键，
//         * 因为服务器会回查这个Group下的任意一个Producer
//         */
//        DefaultMQProducer producer = new DefaultMQProducer(producerGroupName);
//        producer.setInstanceName(producerGroupName);
//        producer.setNamesrvAddr(nameSrvAddr);
//        //设置 lnstanceName，当一个 Jvm 需要启动多个 Producer 的时候，通过设置不同的 InstanceName来区分，不设置的话系统使用默认名称“DEFAULT”
////        producer.setInstanceName(properties.getProducerInstanceName());
//        producer.setVipChannelEnabled(false);
//        //发送消息超时时间,默认3000
//        producer.setSendMsgTimeout(sendMsgTimeout);
//        //发送消息失败重试次数，默认2
//        producer.setRetryTimesWhenSendAsyncFailed(retryTimesWhenSendFailed);
//        //消息最大长度 默认1024*1024*4(4M)
//        producer.setMaxMessageSize(maxMessageSize);
//        /*
//         * Producer对象在使用之前必须要调用start初始化，初始化一次即可<br>
//         * 注意：切记不可以在每次发送消息时，都调用start方法
//         */
//        producer.start();
//        log.info("RocketMq " + this + " Started.");
//        return producer;
//    }
//
//
//
//}
