1、微服务-中间件-消息组件
生产者
发出带流水号(唯一)订单消息。调用消息组件。
消息组件
- 消息组件-消息表:id为生产者的流水号。(具备幂等性)
- 生产者发布请求,查询消息表,判断流水号是否存在,存在,不发送到mq;不存在:发送到mq,消息表插入记录,消息状态为“已发送”。
- 收到消费者反馈,处理完成请求。将消息置为“处理成功”。
- 补偿机制-定时任务,不仅仅要mq自身的重试机制,还要有任务补偿机制,即扫描消息表,状态=“已发送”且发送时间>当前时间-n(n不为0)的数据进行重试,要有时间间隔。
消费者
收到mq消息,调用消息组件。