码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 微服务框架 SpringCloud微服务架构 14 初识MQ 14.2 异步通讯的优缺点


    微服务框架

    【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】

    SpringCloud微服务架构

    文章目录

        • 微服务框架
        • SpringCloud微服务架构
        • 14 初识MQ
          • 14.2 异步通讯的优缺点
            • 14.2.1 异步调用方案
            • 14.2.2 事件驱动优势
            • 14.2.3 总结

    14 初识MQ

    14.2 异步通讯的优缺点
    14.2.1 异步调用方案

    异步调用常见实现就是事件驱动模式

    【举个栗子】

    在这里插入图片描述

    用户在完成下单操作后,肯定会调用支付服务,支付服务完成支付后,就需要后面的订单服务、仓储服务、短信服务各自完成各自的业务

    事件驱动模式就不能像之前那样挨个儿 调了

    在这里插入图片描述

    它引入了一个东西叫 Broker【事件代理者】

    在这里栗子中,一旦有人支付成功,就是一个事件,接着这个事件就会交给Broker 进行管理

    在这里插入图片描述

    后面仨服务就会去找这个Broker,希望它知道有人支付这个事件后,通知它们,这个就叫“订阅事件”

    一旦订阅成功后

    在这里插入图片描述

    将来支付服务发现有人支付成功,就会发布一个事件出去,那Broker 就会通知后面那仨服务

    在这里插入图片描述

    接着它们仨就会去处理对应的业务

    在这整个过程当中,支付服务完成事件发送之后就算结束了自己的业务,就可以去返回给用户了,就不需要再去等待后面那仨完成。【这就是异步的方式】

    14.2.2 事件驱动优势

    优势一:服务解耦

    在这里插入图片描述

    一旦添加了新的后置业务,它要做的事就是去订阅Broker,这样就不用修改支付服务的代码了,因为支付服务并不会直接调用其它服务了

    而且,如果哪项服务将来想取消,

    在这里插入图片描述

    以前同步还得改回去代码,现在直接取消订阅就行了,通知不到,短信服务就不会进行了

    【即增加业务、删除业务都不用改代码了】

    优势二:性能提升,吞吐量提高

    在这里插入图片描述

    这下支付服务就不用管其他仨服务了

    优势三:服务没有强依赖,不担心级联失败问题

    在这里插入图片描述

    现在假设仓储服务挂了,和支付服务无瓜了

    优势四:流量削峰

    在这里插入图片描述

    随着业务量增加、用户增多, 请求变多了

    一瞬间来了仨

    在这里插入图片描述

    这个时候Broker 就可以起到一个缓冲的作用【这样一来,压力都由Broker 扛着】

    在这里插入图片描述

    这样一个高峰并发, 就会被砍平,变得平坦【也对微服务起到了保护作用】

    14.2.3 总结

    异步通信的优点:

    • 耦合度低
    • 吞吐量提升
    • 故障隔离
    • 流量削峰

    异步通信的缺点:

    • 依赖于Broker的可靠性、安全性、吞吐能力
    • 架构复杂了,业务没有明显的流程线,不好追踪管理
  • 相关阅读:
    HBase的flush(刷写)及compact(合并)机制
    Linux高可用集群搭建
    程序员该知道大型网站架构的发展历程吗?如何有效地增加服务器?
    0xC004F069错误的解决方案
    一个基于.Net+Vue开发的开源权限工作流系统
    QT画图功能
    无涯教程-JavaScript - COUPNUM函数
    modbus协议讲解,上位机与PLC交互
    接口测试经典面试题:Session、cookie、token有什么区别?
    〖Python 数据库开发实战 - MongoDB篇①〗- MongoDB数据库的介绍与安装
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/128180376
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号