问题遇到的现象和发生背景
现在有这么一个需求,对于一个任务,有暂停和恢复两个按钮。当按下其中一个按钮时,会通过 RocketMQ 发送事务消息通知其他模块执行相应的业务逻辑。但是如果用户不小心将一个暂停的任务恢复,又马上单机了暂停。此时一下发出恢复、暂停两个消息。如果消费的顺序是恢复、暂停则一切正常,但如果是暂停、恢复则该任务还是恢复到进行中状态,这样就出现问题。
说白了就是 RocketMQ 事务消息如何保证被消费者有序的消费,还请各位同行不吝赐教,提供下思路即可,如果能详细描述,更是感激不尽。
我的解答思路和尝试过的方法
新增一个消费者组,该组中只有一个消费者,从而利用消息队列的 FIFO 实现消费者顺序消费,但是微服务有多个实例,还是可能会将两个消息负载均衡到不同的服务上。