业务逻辑如下:
1、创建订单
2、发送邮件,提醒相关人员订单创建完成。
刚开始,创建订单之后,发送邮件是做成同步的,这样导致一个问题,创建订单这个操作耗时太长,带来的直观效果就是:页面的那个圈圈一直在转,虽然订单创建成功,但是邮件发送失败,由于他们在一个事务中,spring aop配置了如果有失败,就要回滚操作。基于以上事实,所以决定将邮件发送的服务设置为异步的方式。
我的设计思路是这样的。
1.创建订单。
2.利用消息中间件notify,将发送邮件的body放到notify的发布者当中,这个流程就结束了。然后有一个消息的订阅者,消息的订阅者订阅发送方的消息,当订阅到消息之后,将消息通过邮件的方式发送。这样就做成了邮件的异步发送。
这种异步的设计,要把消息传到中间件服务器,再从中间件服务器上拿消息,有没有更好的设计方案啊?
Smart猫小萌
慕码人8056858
收到一只叮咚
相关分类