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博客_定时任务和消息队列
生产者消费者模式、订阅发布模式及观察者模式之间的区别:
生产者消费者只能消费一次,同一条消息的多个消费者之间会存在竞争关系;(消息)
订阅发布模式则不存在竞争关系;(事件)
观察者模式中,被观察者需要维护观察者的信息以便事件发生时能够通知到对方;这也导致观察者模式存在逻辑上的耦合;