rocketmq 调优 防止无限重试
(1)设置 防止无限重试
@Component
public abstract class AbstractPushConsumer implements RocketMQPushConsumerLifecycleListener {
public List<String> idempotentList = new ArrayList<>();
@Override
public void prepareStart(DefaultMQPushConsumer defaultMqPushConsumer) {
// 设置消费者消息重试次数
defaultMqPushConsumer.setMaxReconsumeTimes(5);
// 设置实例名称
defaultMqPushConsumer.setInstanceName("DeadLetter");
// 每次消费条数-5
defaultMqPushConsumer.setConsumeMessageBatchMaxSize(5);
}
}
调用
@Slf4j
@Component
@RocketMQMessageListener(consumerGroup = RocketMqConstant.CREATE_TOPIC, topic = RocketMqConstant.CREATE_TOPIC, consumeMode = ConsumeMode.ORDERLY)
public class CreateShopDefShareListener extends AbstractPushConsumer implements RocketMQListener<Long> {
}
(2)Ridison防止重复点击
if(redissonLockClient.tryLock(SmsCacheNames.PHONE_CODE_REDISSON+phoneNum, -1, 60)){
smsService.sendMsg(phoneNum, type, codeNum);
}else{
throw new wangyaowException(“验证码仍然有效”);
}