RabbitMQ的入门使用

RabbitMQ的相关概念

什么是MQ
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列 的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送 数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。

MQ消息中间件
消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、 RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。
Kafka 是一种分布式的MQ。

AMQP协议和JMS规范
AMQP即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层 协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间 件不同产品,不同开发语言等条件的限制。 优点:可靠、通用 JMS (Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java 应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服 务。
比如,ActiveMQ 是基于JMS规范的MQ产品 RabbitMQ是实现AMQP协议的MQ产品

RabbitMQ简介
RabbitMQ在全球范围内在小型初创公司和大型企业中进行了超过35,000次RabbitMQ生产部署,是最受欢迎的开 源消息代理。RabbitMQ轻量级,易于在内部和云中部署。它支持多种消息传递协议。RabbitMQ可以部署在分布式 和联合配置中,以满足高规模,高可用性要求。

安装RabbitMQ

1、Erlang 环境
2、安装RabbitMQ服务

RabbitMQ的几种消息类型

消息类型有:点对点消息类型和订阅发布类型

RabbitMQ的消息类型有:
简单消息类型:生产者生产消息,发送到队列,消费者按顺序接收消息,但是如果生产的消息过快,消费者接收消息过慢,就很容易造成堵塞

工作类型:生产者生产消息,发送到队列,多个消费者接收消息,消费者按照轮询派发或者公平派发来接收

发布订阅类型:生产者生产消息,发送到交换机,交换机再与特定的客户端队列进行绑定,交换机类型为exchangeType=fanout 可以用来一个消息又要发短息又要发邮件

路由类型:几乎跟发布订阅一样,区别就是交换机的类型为direct,交换机可以根据消息的key选择消息进入那个队列,比订阅发布更加细化

主题类型:几乎跟路由一样,区别就是交换机的类型为topic,可以使用通配符 # 表示一个或则多个,* 则表示一个

RPC:通常用来做专门的RPC服务治理框架 ,这里不讨论

消息的持久化

队列的持久化:cannel.queueDeclare(第二个参数设为true)
交换机的持久化:cannel.exchangeDeclare(第三个参数设为true)

持久化的意义在于,当无服务宕机恢复后,消息也能恢复

你可能感兴趣的:(随笔)