RocketMq-Spring 使用问题

问题记录

rocketmq-spring消费端怎么设置额外的原生属性

例子:rocketmq-spring 实现同一个group订阅多个topic,当然订阅多个tag也可以这么实现

@Slf4j
@Service
@RocketMQMessageListener(topic = "${rocketmq.consumer.topic.order}",
        selectorExpression = "${rocketmq.consumer.tag.order-message}", 
        consumerGroup = "${rocketmq.consumer.group.order}")
public class OrderMessageConsumer implements RocketMQListener<OrderPayload>, RocketMQPushConsumerLifecycleListener {

    @Autowired
    private OrderMessageService orderMessageService;

    @Override
    public void onMessage(OrderPayload payload) {

        log.info("订单消息消费开始:{}", payload);
        log.info("订单消息消费结束!");
    }

    @Override
    public void prepareStart(DefaultMQPushConsumer consumer) {
        try {
            consumer.subscribe("topicA", "*");
            consumer.subscribe("topicB", "*");
            // 订阅多个tags
            consumer.subscribe("topicC", "tagA || tagB");
        } catch (Exception e) {
            log.info("消费者初始化启动失败", e);
        }

    }
}

控制台效果图:

 

 

 通过该方式可以设置所有消费者原生的属性。

消费者核心属性参考:http://t.zoukankan.com/zuoyang-p-14411867.html

rocketmq-spring 消息消费失败状态怎么返回

github上官方是回复throw exception的时候会自动处理消息返回RECONSUME_LATER,直接抛出RuntimeException即可,就会自动重试,但是需要做好重复消费幂等处理。

 

 

 

posted @ 2022-04-20 11:35  迷走神经  阅读(320)  评论(0编辑  收藏  举报