首页 > 关于消息队列解决并发插入的问题

关于消息队列解决并发插入的问题

现在有个同意用户申请加队的操作,每个用户只能存在与一个队伍,在用户加入队伍的时候会判断用户是否已经有队伍信息,如果有就不能再次加队。用户A可以同时发送多个申请加入队伍的请求,例如发给队伍:T1,T2,T3. 有可能T1,T2,T3同时同意了同一个用户的请求,虽然这个操作是事务的但是还是会出现这个用户同时加入了T1,T2,T3的情况。因为他们同时判断用户有没有队伍信息,结果发现都没有所以都插入(从性能角度出发不考虑多列字段的唯一键约束,表级锁)。 如果用了消息队列话可以解决这个问题,但是同时有个问题是怎么保证T1用户点击“同意”后及时告诉用户是否成功(我理解的是接入端只是把请求放到消息队列里让消费端处理,这时消费端处理完请求后生产端是得不到通知的)

还有一个问题,如果像这类的处理以每秒10个数量插入到队列里但是消费断每秒只能处理5个。这种情况怎么办?


利用RPC可以解决队列的实时性问题,但是此方案要慎用,由于入队时会阻塞等待队列给出处理结果,处理不当,会使连接池达到最大,造成系统错误。
一般使用队列,就会抛弃实时性,可在业务设计上规避实时性的要求。

【热门文章】
【热门文章】