SpringBoot解耦方案:异步、事件、消息、定时任务

四种异步

@Async、WebAsyncTask、Callable、DeferredResult

https://www.jb51.net/article/212399.htm

SpringBoot事件发布和监听详解

https://www.jb51.net/article/229046.htm

SpringBoot系列——事件发布与监听

SpringBoot系列——事件发布与监听 - huanzi-qch - 博客园

事件和消息之间的重要区别是,不希望对事件进行进一步处理。

事件发布后,所有系统都可以忽略它,而不会造成任何伤害。

但是,一条消息带有一个假设,即某处将处理该消息。

https://www.jianshu.com/p/265da3c778e1

事件:只能由用户通过外设的输入产生。

消息:(产生消息的来源有三个)

(1) 由操作系统产生。

(2) 由用户触发的事件转换而来。

(3) 由另一个消息产生。

事件和消息的区别_顺其自然~的博客-CSDN博客_事件和消息

定时任务与消息队列的区别

定时任务作业更倾向于批处理,MQ倾向于逐条处理;

定时任务与消息队列的区别_时小浅的博客-CSDN博客_定时任务和消息队列

生产者消费者模式、订阅发布模式及观察者模式之间的区别:

生产者消费者只能消费一次,同一条消息的多个消费者之间会存在竞争关系;(消息)

订阅发布模式则不存在竞争关系;(事件)

观察者模式中,被观察者需要维护观察者的信息以便事件发生时能够通知到对方;这也导致观察者模式存在逻辑上的耦合;

笔记【生产者消费者模式、订阅发布模式及观察者模式之间的区别】_臧馆长的博客-CSDN博客_消费者订阅者模式