目前已有的MQ大致有:
什么是MQ?
MQ就是消息总线/消息队列 (Message Queue),消息对列是一种应用程序对应用程序的通信方法、应用程序通过写和检索入队列的针对应用程序的数据来进行通信,不是通过专用链接来链接这些数据。消息传递是指程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信的。通俗的来讲就是我是一个超市卖鸡蛋的,我把鸡蛋放在一个篮子里,等着人来买,等有需要买鸡蛋的人来到超市卖鸡蛋的柜台,买走鸡蛋,我就是往篮子里放鸡蛋的生产者,买家就是从篮子里拿走鸡蛋的消费者。
2 什情况下可以用到MQ?
异步,应用解耦,对实时性要求不高
3 目前流行的MQ有哪些?
rabbitMQ 安全性稳定性好,多用于金融领域
kafka 高吞吐量的分布式发布订阅消息系统,即使普通硬件也能实现每秒数百万的消息
activeMQ apache的开源消息队列
rocketMQ 是阿里开发的,后捐献给apache的
4 什么是rabbitMq
rabbitMq是开源的,使用erlang语言编写的实现AMQP(Advance Message Queue)协议。
AMQP协议是一个统一消息服务的应用层标准协议,基于此协议客户端和消息中间件之间可以传递任意信息,并不受客户端/中间件不同的产品不同开发语言等条件的限制,AMQP是一种二进制协议,提供客户端应用与消息中间件之间异步、安全、高效地交互
AMQP协议可以分为:
| Model Layer Exchanges Queues Transactions Access Control Data Type |
| Session Layer Commansn Controls Exceptions Confirmation Completion replay Synchronization |
| TransportLayer data encoding framing failure detection Multiplexing |
model 层决定了这些基本模型所产生的行为,这种行为在AMQP中用command表示。
session层定义客户端与broker之间的通信(通信双方都是一个peer,可互称为partner),为command的可靠传输提供保障
transport层专注于数据传送,并与session保持交互,接受上层数据,组装成2进制流,传送到receiver后再解析数据,交付给session层,session层需要transport层完成网络异常情况的汇报,顺序传送command
rabbitMq的结构图:

rabbitMq的五种模式:
| 简单模式 | ![]() | 一个生产者发送消息到queue,一个消费者消费 |
| 工作队列模式 work queue | ![]() | 一个生产者多个消费者,每个消费者获取到的消息唯一,多个消费者只有一个队列 |
| 发布/订阅模式 publish/subscribe | ![]() | 一个生产者发送消息会被多个消费者获取,一个生产者。一个交换机,多个队列,多个消费者 |
| 路由模式 routing | ![]() | 生产者发送消息到交换机并且要指定路由key,消费者将队列绑定到交换机时需要绑定路由key |
| 通配符模式 topics | ![]() |
生产者发送消息到交换机,type=topic,交换机根据绑定队列的routing key的值进行通配符匹配 #可以匹配一个或多个,*只可匹配一个 |
rabbitMq几个关键词
| Server(Broker) | 接收客户端连接,实现AMQP协议的消息队列和路由功能的进程 |
| Virtual Host | 虚拟主机的概念,类似权限控制组,一个Virtual Host里可以有多个Exchange和Queue,权限控制的最小粒度是Virtual Host |
| Exchange | 交换机,接收生产者发送的消息,并根据Routing Key将消息路由到服务器中的队列Queue |
| ExchangeType | 交换机类型决定了路由消息行为,RabbitMQ中有三种类型Exchange,分别是fanout、direct、topic |
| Message Queue | 消息队列,用于存储还未被消费者消费的消息 |
| Message | 由Header和body组成,Header是由生产者添加的各种属性的集合,包括Message是否被持久化、优先级是多少、由哪个Message Queue接收等;body是真正需要发送的数据内容 |
| BindingKey | 绑定关键字,将一个特定的Exchange和一个特定的Queue绑定起来 |
exchange的几种类型
| fanout | 广播模式 |
| direct | 完全匹配 |
| topic | 主题匹配模式 |
| header | 头部模式,效率低 |





1859

被折叠的 条评论
为什么被折叠?



