zoukankan      html  css  js  c++  java
  • ActiveMQ是什么,为什么使用MQ

    是基于 Java 中的 JMS 消息服务规范实现的一个消息中间件。

    1.系统解耦

    采用中间件之后,就可以完美解决上述中因为耦合可能导致的问题。系统 A 不用去

    关心下层服务调用方的问题。

    2. 异步调用

    当一个请求处理需要经过 3 个系统的时候,A 和 B 系统处理时间 3ms 时间,这个是非

    常快的,但是 C 系统可能需要 30s 才能处理完。这样整个业务处理时间因为 C 系统导

    致非常慢。

    比如我们在美团或者饿了吗下单,那么在下单的时候,后台需要通过后台处理:订单支

    付->账户扣款->创建订单->通知商家准备菜品->安排骑手

    这个时候我们对于扣款和创建订单来讲对于时效性要求强,处理效率也比较高。对于通

    知商家准备菜品和安排骑手来讲时效性的要求不是很高,处理时间也可能会稍长。这个

    时候就可以使用 mq 进行异步处理,先处理完前面的业务,然后反馈给用户,之后再通

    过 mq 处理通知商家准备菜品和安排骑手

    3.流量削峰

    大部分时候,每秒几百请求,一台机器就足够了,但是为了抗那每天瞬时的高峰,硬是

    部署了 10 台机器,每天就那半个小时有用,别的时候都是浪费资源的。

    但是如果你就部署一台机器,那会导致瞬时高峰时,一下子压垮你的系统,因为绝对无

    法抗住每秒几千的请求高峰。此时我们就可以用 MQ 中间件来进行流量削峰

    所有机器前面部署一层 MQ,平时每秒几百请求大家都可以轻松接收消息。一旦到了瞬

    时高峰期,一下涌入每秒几千的请求,就可以积压在 MQ 里面,然后那一台机器慢慢

    的处理和消费。等高峰期过了,再消费一段时间,MQ 里积压的数据就消费完毕了。

  • 相关阅读:
    002变量
    001Java输入、eclipse快捷键
    040同步条件event
    kali配置ip,更新源,更新签名
    039条件变量同步(Condition)
    038信号量
    037多线程同步
    配置java环境变量(详细)
    提高你的Python能力:理解单元测试
    电影里的代码之《机械姬》:筛法求质数
  • 原文地址:https://www.cnblogs.com/wangju/p/11968799.html
Copyright © 2011-2022 走看看