MQ基础信息mq的简介
MQ
同步和异步通讯
微服务间通讯有同步和异步两种方式:
同步通讯:就像打电话,需要实时响应。
异步通讯:就像发邮件,不需要马上回复。
两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。
同步通讯
Feign调用就属于同步方式,虽然调用可以实时得到结果,但存在下面的问题:
同步调用的优点:
·时效性较强,可以立即得到结果
同步调用的问题:
·耦合度高
·性能和吞吐能力下降
·有额外的资源消耗
·有级联失败问题
异步通讯
异步调用则可以避免上述问题:
我们以购买商品为例,用户支付后需要调用订单服务完成订单状态修改,调用物流服务,从仓库分配响应的库存并准备发货。
在事件模式中,支付服务是事件发布者(publisher),在支付完成后只需要发布一个支付成功的事件(event),事件中带上订单id。
订单服务和物流服务是事件订阅者(Consumer),订阅支付成功的事件,监听到事件后完成自己业务即可。
为了解除事件发布者与订阅者之间的耦合,两者并不是直接通信,而是有一个中间人(Broker)。发布者发布事件到Broker,不关心谁来订阅事件。订阅者从Broker订阅事件,不关心谁发来的消息。
Broker 是一个像数据总线一样的东西,所有的服务要接收数据和发送数据都发到这个总线上,这个总线就像协议一样,让服务间的通讯变得标准和可控。
好处:
·吞吐量提升:无需等待订阅者处理完成,响应更快速
·故障隔离:服务没有直接调用,不存在级联失败问题
·调用间没有阻塞,不会造成无效的资源占用
·耦合度极低,每个服务都可以灵活插拔,可替换
·流量削峰:不管发布事件的流量波动多大,都由Broker接收,订阅者可以按照自己的速度去处理事件
缺点:
·架构复杂了,业务没有明显的流程线,不好管理
·需要依赖于Broker的可靠、安全、性能
技术对比
MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。
几种常见MQ的对比:
追求可用性:Kafka、 RocketMQ 、RabbitMQ
追求可靠性:RabbitMQ、RocketMQ
追求吞吐能力:RocketMQ、Kafka
追求消息低延迟:RabbitMQ、Kafka
MQ基础信息mq的简介相关推荐
- MQ(Message Queue)简介
一.何为MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传 ...
- IBM Websphere MQ 基础0:Linux下安装IBM MQ 7.5
背景 无.公司就是用的IBM WebSphere MQ作为消息中间件,本文记载how install it. 一. 安装包检查与准备 1. 检查 通过rpm –qa检查是否已经安装 IBM MQ,若已 ...
- RocketMQ——MQ基础知识
文章目录 1. 什么是MQ? 2. MQ解决了哪些问题? 3. 使用MQ带来了哪些问题? 4. MQ中常见的协议有哪些? 5. 常见的消息中间件 鉴于号称"人见天堂"的杭州阿里 ...
- IBM Websphere MQ 基础4:Channel通道与MQ间消息传输
概念 WebSphere® MQ uses two different types of channels: A message channel, which is a unidirectional ...
- 【MQ基本概念 MQ的工作原理】
一. MQ 基本概念 1 . MQ 概述 MQ 全称 Message Queue (消息队列),是在消息的传输过程中保存 消息的容器.多用于分布式系统之间进 行通信. 小结 MQ ,消息 队列,存储消 ...
- J2EE基础之Web服务简介
J2EE基础之Web服务简介 1.什么是Web服务? 在人们的日常生活中,经常会查询网页上某城市的天气信息,这些信息都是动态的.实时的,它是专业的气象站提供的一种服务.例如,在网上购物时,通常采用网上 ...
- Mybatis配置信息浅析 MyBatis简介(二)
官方文档入门篇中有明确说明 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的. SqlSessionFactory 的实例可以通过 SqlSessionF ...
- W3school:CSS基础:教程、简介、语法、选择器、使用(在HTML中引入)
W3school:CSS基础:教程.简介.语法.选择器.使用(在HTML中引入) 教程.简介: 链接:https://www.w3school.com.cn/css/index.asp 一.CSS语法 ...
- RabbitMQ:什么是消息队列MQ?为什么使用消息队列MQ?入门MQ先学哪种?(一)
0. 引言 MQ(Message Queue):消息队列,如今在各类业务场景中已经被广泛使用,特别在并发量日益增涨的业务和微服务架构中,消息队列能够帮助我们解决很多传统方式所不能解决的问题. 所以今天 ...
最新文章
- 世界银行拨款2293万美元支持印度并网屋顶太阳能
- java小程序死机_求解,刚写的小程序,一运行我机器就死机
- 从实例入手学习Shiro自定义Realm实现查询数据进行验证
- 在Spring MVC中处理域对象
- 小数前的0在html不显示,jsp小数显示问题 例如 我在oracle 数据库中查询出来的是 0.01 但是在jsp页面上就显示成 .01 没有前面的0...
- ubuntu版本号查询
- 从一个登录页面浅淡MVVM(二)
- 最不靠谱CEO,一句话让公司损失上千亿元
- java 内置注解入门
- 字典树-大量字符串前缀及出现次数是否存在统计(Trie树-java)算法实现
- java用户登录窗口怎么删除_JAVA图形界面用户登录后如何关闭登录的对话框
- 小程序保存图片相册无响应
- 二叉树遍历——递归算法
- CentOS下安装jdk11
- 教你用迅雷下载百度网盘的文件
- Word参考文献设置-尾注后添加致谢等内容
- 自动驾驶仿真测试的意义
- (附源码)springboot社区文明养宠平台 毕业设计 231609
- Android根据输入法的状态隐藏和关闭输入法
- java 如何转化成机器指令_Java代码到底是如何编译成机器指令的
热门文章
- 响应式ui_在应用程序远程通知ui中响应本机
- C++ socket函数解析
- python getattr 函数
- 单片机综合实验 - 03 | 音乐门铃设计
- 波形分析软件 android,新版 PicoScope 软件提供更出色的波形分析和功能 – 免费获取!...
- onSenUI 配置环境
- 操作系统——进程与线程の选择题整理
- aws sqs java_示例 Amazon SQS 函数代码 - AWS Lambda
- ceRNA调控机制简介
- 字典的数据怎么转变为excel_Excel小技巧——快速为多行数据排列名次