聊聊代码异步和解耦

63 阅读1分钟

1、介绍

在代码开发过程中,如果业务逻辑繁杂,可能写出来的代码全在一起,主线程执行时间很长,这会导致接口响应速度慢,用户体验变差。为了解决这种问题,我们可以通过合理的异步操作减少接口响应时间。

2、详细介绍

通过异步,可以将耦合在一起的业务逻辑代码解耦掉,提升代码可维护性和稳定性。常见的异步方式主要有以下两种:

2.1 本地异步

常见的本地异步主要有spring event和event bus,采用发布-订阅机制在不同组件之间进行通信,主要分为发布者、监听者、事件三部分。

优点:

简单易用、不需要额外配置。

2.2 分布式异步

分布式异步主要是利用消息队列mq

优点:

可靠性:在异常情况下,mq支持自动失败重试。例如mq消费者出现网络异常导致失败时,通过mq本身的重试机制可以确保异步执行的正确性。

缺点:需要额外引入消息队列中间件,增加代码复杂性。

一是eventbus为代表的本地异步,二是mq分布式异步。

在使用时,与eventbus相比,mq在异常情况下可以做到消息重试,有更好的容错性。