美文网首页
为什么使用消息队列?消息队列有什么优点和缺点?Kafka、Act

为什么使用消息队列?消息队列有什么优点和缺点?Kafka、Act

作者: 潇豪 | 来源:发表于2019-11-21 01:19 被阅读0次
    • 为什么使用消息队列?
    • 消息队列有什么优点和缺点?
    • Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?

    • 为什么使用消息队列

    消息队列的使用场景总结起来常见的有三个:解耦、异步、削峰。

    • 解耦

    例如 系统1发送数据给系统2,系统3,系统4,通过接口来调用,现在系统5需要数据,系统4不需要数据了。此刻我们就需要去a系统中重新编写和删除相应接口,耦合严重。

    耦合的系统

    此刻还要关注一些问题,调用接口的系统挂了怎么办,要不要重发,怎么存储消息,这是个问题。
    但是我们应用一个MQ,系统将数据发送到MQ中,让其他系统自己去调用消费,此时系统不在考虑给哪个系统发送数据,不需要维护这个代码,不需要考虑是否失败超时等情况。

    mq

    总结:通过 MQ,Pub/Sub 发布订阅消息这么一个模型,系统彻底解耦了。

    • 异步

    A系统给每个系统发送接口数据都需要要损耗时间


    同步

    系统在短时间内发送多个接口数据给MQ队列,其他系统直接去队列中消费消息,损耗时间极短,可以理解为将串行,变为并行发送的数据。


    异步
    • 削峰
      在系统访问高峰期的时候大量并行请求落到数据库中,可能直接导致mysql崩溃。


      访问数据库

    例如此刻有5k请求,数据库只能承受2k,我们可以将5k请求放到MQ中,然后系统每次拉取2k请求的数据,虽然请求大的时候会积压数据,但是避免的mysql奔溃,保持系统正常使用


    相关文章

      网友评论

          本文标题:为什么使用消息队列?消息队列有什么优点和缺点?Kafka、Act

          本文链接:https://www.haomeiwen.com/subject/jttipctx.html