RocketMQ常见异常及处理方案

The producer service state not OK, SHUTDOWN_ALREADY,RocketMQ异步发送No route info of this topic, topic_e

demo是照着网上写的,同步和单向发送都没有问题,异步发送就有问题,代码如下


public class AsynProducerTest {
    public static void main(String args[]) throws Exception {
        DefaultMQProducer defaultMQProducer = new DefaultMQProducer("demo_provider_group12");
        defaultMQProducer.setNamesrvAddr("127.0.0.1:9876");
        //defaultMQProducer.setInstanceName("myProducer1");
        defaultMQProducer.setRetryTimesWhenSendAsyncFailed(3);
        defaultMQProducer.setVipChannelEnabled(false);
        defaultMQProducer.start();
        for (int i = 0; i < 100; i++) {
            Message message = new Message("topic_example", "tag_a", ("hello AsynRocketMq").getBytes(RemotingHelper.DEFAULT_CHARSET));
            defaultMQProducer.send(message, new SendCallback() {
                @Override
                public void onSuccess(SendResult sendResult) {
                    System.out.println(sendResult.getMsgId());
                }
                @Override
                public void onException(Throwable throwable) {
                    throwable.printStackTrace();
                }
            });

        }
//        **defaultMQProducer.shutdown();**
    }
}

解决方案:

因为有个回调函数,所以这里关闭了就出错了,注释掉就可以了

The broker does not support consumer to filter message by SQL92

解决方案:

修改集群配置文件(*如果是集群环境,非集群环境同理修改配置文件)
/usr/local/software/rocketmq/conf/2m-2s-sync/broker-a.properties
/usr/local/software/rocketmq/conf/2m-2s-sync/broker-b-s.properties
/usr/local/software/rocketmq/conf/2m-2s-sync/broker-b.properties
/usr/local/software/rocketmq/conf/2m-2s-sync/broker-a-s.properti

1. 打开文件

vim /usr/local/software/rocketmq/conf/2m-2s-sync/broker-a.properties

2. 如下图所示添加enablePropertyFilter=true

3. 重启

nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-2s-sync/broker-a.properties &
posted @ 2021-09-24 11:44  it鱼说  阅读(1530)  评论(0)    收藏  举报