彻底解决分布式环境下Redisson消息队列监听重复执行问题

问题现象:测试环境单台部署,没有问题,生产环境多台部署订单都是2条重复数据。

问题描述:我们把每个服务都部署了2台,订单产生后,有redisson的mq发布,如果MQListener监听到就会执行后面的业务逻辑。现实的问题是2台MQListener都会监听到,会重复处理我们的逻辑,插入数据库或修改数据库或写入ES等都会执行2遍。

本文的DEMO中使用的是redisson的mq来测试的,同时RabbitMQ,ActiveMQ,RocketMQ也会有同样的问题,处理逻辑大家可以参照,应该都是大同小异。

解决方法:redisson公平锁【谁先抢到谁先锁,其余需要等待】加锁处理,只需要一台来处理。

------------------------------------------------核心代码----------------------------------------------------------

1、pom依赖及redisson插件



  com.zengtengpeng
  redisson-spring-

你可能感兴趣的:(JAVA,分布式,redisson,redis数据重复,微服务,springboot)