赞
踩
- MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。多用于分布式系统之间进行通信。
-
-
- 为什么使用MQ:
- 在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从
- 而提高了系统的吞吐量。
-
- 1、任务异步处理:
- 将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。
-
- 2、应用程序解耦合:
- MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。
- 比如订单系统要远程调用库存系统、支付系统、物流系统,这样会耦合,修改参数时候麻烦。
- 使用消息队列后,订单系统给消息MQ发送一条消息就算成功了
-
- 3、削峰填谷:
- 如订单系统,在下单的时候就会往数据库写数据。但是数据库只能支撑每秒1000左右的并发写入,并发量再高就容易宕机。
- 低峰期的时候并发也就100多个,但是在高峰期时候,并发量会突然激增到5000以上,这个时候数据库肯定卡住,甚至宕机。
-
-
- 使用mq后,在大并发下,比如每秒1000个数据写入数据库,那么就会有大量的消息数据积压在mq中,高峰就被削掉了,不会有大量请求打到数 据库,在经过高峰期后,消费消息的速度依然保持不变,那么被积压的消息就会被消费完,这叫做填谷。

- 1.队列(queue):点对点消息通信 (point-to-point)
- --消息发送者发送消息,消息代理将其放入一个队列中,消息接受者从队列获取消息内容,
- 消息读取后被移出队列
-
- --消息只有唯一的发送者和接收者,但并不是说只能有一个接收者(指的是消息只能被众多的消费者者 中的其中一个消费)
-
- 2.主题(topic):发布(publish) / 订阅(subscribe)消息通信
-
- --发送者(发布者)发送消息到主题,多个接收者(订阅者)监听(订阅)这个主题,那么就会在消息到达时 同时接收消息
- MQ是消息通信的模型;
- 实现MQ的大致有两种主流方式:AMQP、JMS。
-
- JMS(java Message service)java消息服务:
- --是一个Java平台中关于面向消息中间件(MOM)的API
- --基于jvm消息代理的规范。ActiveMq,HornetMq是JMS实现的。
-
-
- AMQO(Advanced Message Queuing Protocol):
- --是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,
- 并不受客户端/中间件不同产品,不同的开发语言等条件的限制
-
- --AMQP是一种协议,更准确的说是一种binary wire-level protocol(链接协议),
- 这是其和JMS的本质差别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式,类比HTTP。
-
- --高级消息队列协议,也是一个消息代理的规范,兼容JMS
- --RabbitMQ是AMQP的实现。

消息他又消息头和消息体组成。消息体是不透明的,而消息头则是由一系列的可选属性组成,这些属性包括route-key(路由键),priority(相对于其他信息的优先权),delivery-mode(指出该消息可能需要持久性存储)等
消息的生产者,也是一个向交换器发布消息的客户端应用程序
- 交换器,用来接收生产者发送的消息并将消息路由给服务器中的队列。
- exchange有四种类型:direct(默认),fanout,topic和headers。
- 不同类型的exchange转发的消息的策略有所区别
消息队列,用来保存消息直到发送给消费者,它是消息的容器,也是消息的终点,一个消息可投入一个或多个队列。消息一直在队列里面,等待消费者连接达到这个队列将其取走。
- 绑定,用于消息队列和交换器之间的关联,一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则,所以可以将交换器理解成一个由绑定构成的路由表。
-
- exchange和queue的绑定可以是多对多的关系
网络连接,比如一个tcp连接
信道,多路复用连接中的一条独立的双向数据流通道。信道是建立在真实的tcp连接内的虚拟连接,AMQP命令都是通过信道发出去的,不管是发布消息,订阅队列还是接收消息,这些动作都是通过信道完成。因为对于操作系统来说建立和销毁tcp都是非常昂贵的开销,所以引入了信道的概念,以复用一条tcp连接。
消息的消费者,,表示一个从消息队列中取得消息的客户端应用程序
虚拟主机,表示一批交换机,消息队列和相关对象。虚拟主机是贡献相同的身份认证和加密环境的独立服务器域,每个虚拟主机本质上就是一个mini版的RabbitMQ服务器,拥有自己的队列
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。