| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> RabbitMQ入门篇(一)基础概念 -> 正文阅读 |
|
[大数据]RabbitMQ入门篇(一)基础概念 |
目录 一、MQ概述MQ全程 Message Queue(消息队列),实在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。 ?二、MQ的优劣势1、优势(1)应用解耦就以电商下单为例子:在分布式场景下原始的下单逻辑 用户下单,订单系统会和其余的各个系统交互,比如库存系统,支付系统等等系统。但是如果现在库存系统挂了,那么订单系统也会受到影响,那么就会导致相应的一些业务板块受到影响。如果还需要加入其余的系统进来,还需要去修改订单系统的代码,这样可维护性也很低。 也就是说:系统的耦合性越高,容错性越低,可维护性就越底。 使用MQ过后的下单逻辑: ?加入MQ过后,订单系统的数据就只需要放到MQ中去,库存等其他系统也只需要去MQ中取数据即可。比如库存系统挂了的话,对于其它系统是没有影响的。如果新加一个系统的话也和订单系统没有直接的关系,是跟MQ交互了。 使用MQ使得应用间解耦,提升容错性和可维护性。 (2)异步提速没有加MQ之前: ?一个订单操作耗时:20+300+300+300 = 920ms 用户点击完下单按钮后,需要等待920ms才能得到下单响应,太慢了。 ?添加MQ之后: ?由于MQ的性能是很优越的,系统与MQ之间的交互时间远小于系统与系统之间的交互时间。 由于订单系统和库存等其它系统是没有直接交互的,订单系统只要把数据交给MQ后就算下单完成了。 用户点击下单按钮后,只需要等待25ms就能得到下单响应(20 + 5 = 25ms)。 提升用户体验和系统吞吐量(单位时间内处理请求的数目)。 (3)削峰填谷用户下单直接与订单系统交互的时候,假设是秒杀,每秒钟有5000个请求直接打到订单系统中,如果订单系统每秒钟最大请求是1000,这样必定会把系统直接打挂掉。 ?请求数据直接和MQ交互,订单系统每秒直接从MQ中拉取1000个请求,这样就可以让系统更好的处理自己的最大请求数。 使用了 MQ 之后,限制消费消息的速度为1000,这样一来,高峰期产生的数据势必会被积压在 MQ 中,高峰就被“削”掉了,但是因为消息积压,在高峰期过后的一段时间内,消费消息的速度还是会维持在1000,直到消费完积压的消息,这就叫做“填谷”。 使用MQ后,可以提高系统稳定性。 MQ的优势:
2、劣势(1)系统可用性降低系统引入的外部依赖越多,系统稳定性越差。一旦MQ宕机,就会对业务造成影响。 这里就需要使用的MQ的高可用来解决这个问题。 (2)系统复杂度提高MQ的加入大大增加了系统的复杂度,以前系统间是同步的远程调用,现在是通过MQ进行异步调用。 这里就需要考虑到如何保证消息不被丢失等情况? 常见的MQ产品对比:
?三、RabbitMQ基本概念1、RabbitMQ简介AMQP,即 Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。2006年,AMQP 规范发布。类比HTTP。 Rabbitmq官网:https://www.rabbitmq.com/ RabbitMQ基础架构如下图: ?2、RabbitMQ的相关概念
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:28:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |