RocketMQ 死信队列 | 消费者出现异常如何处理?
在 RocketMQ 重复消费问题 | 订单系统核心流程引入幂等性机制 一文中,我们讨论了消息重复消费的问题,比较好的方案是采用在消费侧使用业务判断法来保证接口的幂等性,这样就能避免消息重复消费的问题。 今天要讨论的是消费者代码执行过程中出现异常,我们应该如何处理? 手动提交 offset 首先来看一段代码, Consumer 类是一个消费者类,它我们为它注册了一个监听器,在处理完消息之后,会将消息的状态返回给 RocketMQ,执行成功返回的是消息状态是 CONSUME_SUCCESS 。 public class Consumer { public static void main(String[] args) throws MQClientException { DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("test_consumer"); // 设置 NameServer 地址 consumer.setNamesrvAddr(""); // 订阅 Topic consumer.subscribe("TopicTest", "*"); // 这次回调接口,接收消息 consumer.registerMessageListener(new MessageListenerConcurrently() {