场景:发短信
解决办法:将发短信的操作,封装成一条消息,放到消息队列中,消息队列按照顺序挨个处理消息,顺利的话,刚放进去就被处理;如果消息超时,重新放到队列中。有时候,等好久都没收到短信(网络问题,服务器问题,或者消息太多了) 提交订单:发送一条创建订单的消息,到消息队列中,此时,用户就不需要一直等待,这也能够提高体验性。还有,与第三方公司的业务调用,也使用消息队列。
- 错峰:业务系统并发很高,和短信发送系统的一个错峰。
- 强一致性:分布式事务,成本太高,落地太难。
- 最终一致性:记录和补偿的方式,先把事情记下来,然后去处理不确定的事情,他们分为三种结果:成功,失败,不确定(等价于失败),对于后两者,利用定时任务,重写执行,直到成功。