rocketmq-spring icon indicating copy to clipboard operation
rocketmq-spring copied to clipboard

Support Thrid part SDK DefaultMQProducer bean

Open liuliuzo opened this issue 6 years ago • 0 comments

有些特殊场景想问下能不能支持,所以重新描述下这个问题,事情是这样的,我这里遇到一个特殊的场景,在使用rocketmq-spring时引入了一个外部的SDK jar包这个包自己使用了原生的初始化了DefaultMQProducer 并且在spring容器里,导致报错:Caused by: org.apache.rocketmq.client.exception.MQClientException: The producer service state not OK, maybe started once, RUNNING

@Configuration
public class Config {
    @Bean
    public DefaultMQProducer defaultMQProducer() {
        DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
        try {
            producer.start();
        } catch (MQClientException e) {
            e.printStackTrace();
        }
        return producer;
    }
}

大致原因是三方的SDK里自己注入了DefaultMQProducer的spring bean并且start了客户端。 能否给rocketmq-spring default producer设置一个独有的instanceName 或者bean Name屏蔽这个问题?

liuliuzo avatar Aug 21 '19 07:08 liuliuzo