MQ消息队列学习

1.概念:(message queue)

一种跨进程的通信机制,用于在上下游之间传递消息。消息发送上游只需要依赖MQ,逻辑上和物理上都不用依赖其他服务
详解参考:https://blog.csdn.net/wqc19920906/article/details/82193316 ;https://blog.csdn.net/u010255818/article/details/77855873

2.使用场景:

  • 应用解耦:比如:某系统发生故障时,将要处理的数据暂存到消息队列中,等系统恢复时,继续处理相关信息,用户不会感受到系统的故障。
  • 流量消峰:比如一秒钟订单系统的处理上限是一万个订单,如果两万个订单,超出上限时,可以将这一秒中的订单分批处理,有的可能会十几秒、有的可能一秒就可以得到订单成功的结果。
  • 消息分发:多个服务对同一个数据感兴趣,只需要监听同一类消息就可以。比如A、B、C。B和C对A数据都感兴趣,那么A就可以作为基础服务,只管发送消息,其他负责监听就行
  • 异步消息:比如A服务调用B服务时,B需花费一定的时间去执行,有两种方式去告知A执行完毕。A过一会去调用B的查询接口,或者B调用A的callback接口。 !!!But 通过使用mq,只需要监听B服务是否完成,如果完成会发送一条消息给mq,mq会将该消息发送给A。从而A得知B已完成
    注意:MQ只用来传递上游任务执行完成的消息,并不用于传递真正的输入输出数据。
  • 1)数据驱动的

你可能感兴趣的:(消息队列)