MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信 任务异步处理 将不需要同步处理且耗时的操作由消息队列通知消息接收方进行异步处理,提高了应用程序的响应时间 应用程序解耦合 MQ相当于一个中介,生产方通过MQ与消费放交互,它将应用程序进行解耦合 削峰填谷 如订单系统,在下单的时候就会往数据库中写数据,但是数据库只能支撑每秒1000左右的并发写入,并发量在高就容易死机,低峰期的时候并发也就100多个,但是在高峰期的时候,并发量会突然激增到5000以上,这个时候数据库肯定就会卡死 案例 AMQP是一种协议,更准确的说是一种binary wire-level protocol(链接协议).这是其和JMS的本质差别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式 JMS集java消息服务(Java message service)应用程序接口,是一个java平台关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信 RabbitMq是使用Erlang语言编写实现了AMQP(Advanced Message Queuing Protocol)高级消息队列协议的消息队列服务 生产者发送消息 生产者创建连接,开启一个频道,连接到RabbitMq Broker 声明队列并设置属性,例如是否排他,持久化,自动删除 将路由键(空字符串)与队列绑定起来 发送消息到RabbitMq Broker 关闭频道 关闭连接 消费者接受消息 消费者创建连接,开启频道,连接到RabbitMq Broker 想Broker请求消费相应队列中的消息,设置相应的回调函数 等待Broker回应闭关投递响应队列中的消息,消费者接受消息 确认(自动确认)接收到消息 RabbitMq从队列中删除已被确认的消息 关闭频道 关闭连接
什么是消息队列
在项目中,可以将一些无需即使返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量
消息被MQ保存起来,然后系统就会按照自己的消费能力消费,比如每秒1000个数据,这样慢慢写入数据,数据库就不会卡死
但是使用了MQ之后。限制消费消息的速度为1000,但是这样一来,高峰期生产的数据势必会被积压在MQ中,高峰就被削掉了,但是因为消息积压,在高峰期过后的一段时间内,消费消息的速度还是会维持在1000QPS,知道消费完积压的消息,这就叫做填古
AMQP和JMS
JMS
AMQP与JMS的区别
RabbitMq
RabbitMq原理图
RabbitMq基本组件介绍
RabbitMq运转过程
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算