1、介绍
在代码开发过程中,如果业务逻辑繁杂,可能写出来的代码全在一起,主线程执行时间很长,这会导致接口响应速度慢,用户体验变差。为了解决这种问题,我们可以通过合理的异步操作减少接口响应时间。
2、详细介绍
通过异步,可以将耦合在一起的业务逻辑代码解耦掉,提升代码可维护性和稳定性。常见的异步方式主要有以下两种:
2.1 本地异步
常见的本地异步主要有spring event和event bus,采用发布-订阅机制在不同组件之间进行通信,主要分为发布者、监听者、事件三部分。
优点:
简单易用、不需要额外配置。
2.2 分布式异步
分布式异步主要是利用消息队列mq
优点:
可靠性:在异常情况下,mq支持自动失败重试。例如mq消费者出现网络异常导致失败时,通过mq本身的重试机制可以确保异步执行的正确性。
缺点:需要额外引入消息队列中间件,增加代码复杂性。
一是eventbus为代表的本地异步,二是mq分布式异步。
在使用时,与eventbus相比,mq在异常情况下可以做到消息重试,有更好的容错性。