【文章阅读】任务、消息队列、以及广播的理解

原文:任务与消息队列

https://zhuanlan.zhihu.com/p/37648767?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

理解

  1. 什么是任务(Task)?即异步执行逻辑。某种情况下可以等同于多线程;

  2. 为什么需要异步执行?
    因为同步执行耗时太久,响应时间太长,影响用户体验。对于非恶心不影响主流程的业务,可以异步执行。

  3. 简单的异步实现方式:多线程;
    多线程的不足:只是解决了响应时间的问题。
    如果同一时间响应太多,那么创建线程太多(也可以线程池,但是如果请求太多,线程池被耗尽,依旧会影响相应时间),服务器可能会挂掉。

  4. 高级的实现方式:消息队列;
    请求被放入消息队列,消息队列本身可以存储一定的数量的消息(缓存),会有专门的处理逻辑从消息队列中取出消息进行处理。
    可以理解为空间换时间;
    优点:错峰控流和解耦

  5. 广播和消息队列:
    广播是消息队列的高级进化方式:
    消息队列:一个消息只有一个接收方处理;
    广播:一个消息有多个接收方处理;

原文地址:https://www.cnblogs.com/buwuliao/p/9180973.html