MQ

目前已有的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头部模式,效率低

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值