zoukankan      html  css  js  c++  java
  • 初识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)上游无法知道下游的执行结果,这一点是很致命的

  • 相关阅读:
    Unity调用Android的API实现分享功能<转>
    CG函数
    Android三种播放视频的方式
    Android 对话框(Dialog)大全 建立你自己的对话框
    Android播放本地视频
    Unity与Android的对调
    [Shader]LOGO闪光效果
    Android实现拍照与打开本地图片
    Android位图相关解码操作
    Unity3d生成二维码
  • 原文地址:https://www.cnblogs.com/virgosnail/p/9980354.html
Copyright © 2011-2022 走看看