报错
See http://rocketmq.apache.org/docs/faq/ for further details. org.apache.rocketmq.client.exception.MQClientException: The PushConsumer service state not OK, maybe started once, RUNNING
See http://rocketmq.apache.org/docs/faq/ for further details.
	at org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl.start(DefaultMQPushConsumerImpl.java:641) ~[rocketmq-client-4.5.2.jar:4.5.2]
	at org.apache.rocketmq.client.consumer.DefaultMQPushConsumer.start(DefaultMQPushConsumer.java:693) ~[rocketmq-client-4.5.2.jar:4.5.2]
See http://rocketmq.apache.org/docs/faq/ for further details. org.apache.rocketmq.client.exception.MQClientException: The PushConsumer service state not OK, maybe started once, RUNNING
See http://rocketmq.apache.org/docs/faq/ for further details.
	at org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl.start(DefaultMQPushConsumerImpl.java:641) ~[rocketmq-client-4.5.2.jar:4.5.2]
	at org.apache.rocketmq.client.consumer.DefaultMQPushConsumer.start(DefaultMQPushConsumer.java:693) ~[rocketmq-client-4.5.2.jar:4.5.2]

使用场景
        RocketMqConfig rocketMqConfig = new RocketMqConfig();
        try {
            DefaultMQPushConsumer consumer = rocketMqConfig.getConsumer();
            consumer.registerMessageListener(new MessageListenerOrderly() {
                @Override
                public ConsumeOrderlyStatus consumeMessage(List<MessageExt> msgs, ConsumeOrderlyContext context) {
                    context.setAutoCommit(true);
                    try {
                        System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs);
                        logger.info("{} Receive New Messages: {}", Thread.currentThread().getName(), msgs);
                        for (MessageExt msg : msgs) {
                                                }
                    } catch (Exception e) {
                        logger.error(e.getMessage(), e);
                    }
                    return ConsumeOrderlyStatus.SUCCESS;
                }
            });
            consumer.start();

这是我们在 spring 中的使用方式,由于是启动一个线程在执行。所以错误原因是做了重复。(PushConsumer service state not OK, maybe started once, RUNNING)

解决

最后,方法添加注解@PostConstruct,初始化后启动,

2021 JavaPub版 面试题持续更新中

推荐文章

今年不论对于国家还是我们个人都是决胜之年,特此安排 2021 JavaPub版 面试题及题解详细参考(全网搜:JavaPub版)(公众号 JavaPub -> 文章目录查看),包括:

基础,JVM,容器,多线程,反射,异常,网络,对象拷贝,JavaWeb,设计模式,Spring-Spring MVC,Spring Boot / Spring Cloud,Mybatis / Hibernate,Kafka,RocketMQ,Zookeeper,MySQL,Redis,Elasticsearch,Lucene。订阅不迷路,2021奥利给。

BAT面试

题:https://javapub.blog.csdn.net/article/details/113768696