Hello World

初识MQ

【参考文章】:到底什么时候该使用MQ?

1. 什么是MQ?

  消息队列(Message Quene)是一种跨进程的通信机制,用于上下游传递消息

  MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。

  使用了MQ之后,消息发送上游只需要依赖MQ,逻辑上和物理上都不用依赖其他服务。

2. 什么时候不使用MQ?

  结论:调用方实时依赖执行结果的业务场景,请使用调用,而不是MQ

  比如:用户登录场景,登录页面调用passport服务,passport服务的执行结果直接影响登录结果,此处的“登录页面”与“passport服务”就必须使用调用关系,而不能使用MQ通信。

3. 什么时候使用MQ?

  1)数据驱动的任务依赖:多个任务执行有先后关系,且任务2依赖前面的任务1结果。任务2订阅任务1,任务1完成后发送消息到MQ,任务2接收到消息后开始执行。

  2)上游不关心下游执行结果:上游只需要产生消息即可,下游自行消费。

  3)异步返回执行时间长:回调网关+MQ

4. MQ的优劣

4.1 MQ的优势

  1)解耦

  2)数据持久化到被完全处理,规避数据丢失的风险

  3)增加灵活性和峰值处理能力

  4)MQ中的消息是有序的

  5)异步通信机制

4.2 MQ的劣势

  1)系统更复杂,多了一个MQ组件

  2)消息传递路径更长,延时会增加

  3)消息可靠性和重复性互为矛盾,消息不丢不重难以同时保证

  4)上游无法知道下游的执行结果,这一点是很致命的

 

posted @ 2018-11-18 23:14  小小忧愁米粒大  阅读(222)  评论(0编辑  收藏  举报
瞅啥瞅,好好看书