异步处理
- 要考虑异步流程丢消息或处理中断的情况,异步流程需要有备线进行补偿。比如全量补偿方式,即便异步流程彻底失效,通过补偿也能让业务继续进行。
- 异步处理的时候需要考虑消息重复的可能性,处理逻辑需要实现幂等,防止重复处理。
- 微服务场景下不同服务多个实例监听消息的情况,一般不同服务需要同时收到相同的消息,而相同服务的多个实例只需要轮询接收消息。我们需要确认 MQ 的消息路由配置是否满足需求,以避免消息重复或漏发问题。
- 要注意始终无法处理的死信消息,可能会引发堵塞 MQ 的问题。一般在遇到消息处理失败的时候,可以设置一定的重试策略。如果重试还是不行,那可以把这个消息扔到专有的死信队列特别处理,不要让死信影响到正常消息的处理。