提纲
1、rabbitmq简介
2、下载安装erlang/otp
3、下载安装rabbitmq
1 rabbitmq简介
MQ全称为Message Queue,即消息队列。它也是一个队列,遵循FIFO原则 。
RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue Protocol高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。
官方地址:http://www.rabbitmq.com/
1.1 RabbitMQ的使用场景
开发中消息队列通常有如下应用场景: 消峰,解耦,提速,大数据处理
消除峰值:用于高并发场景消除峰值,让并发请求在mq中进行排队
大数据处理:由于数据量太大,程序一时处理不过来,可以通过把数据放入MQ,多开几个消费者去处理消息,比如:日志收集等
服务异步/解耦 :服务之间通过RPC进行通信的方式是同步方式,服务消费方需要等到服务提供方相应结果后才可以继续执行,使用MQ之后的服务通信是异步的,服务之间没有直接的调用关系,而是通过队列进行服务通信, 应用程序解耦合 MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。
排序保证 FIFO :遵循队列先进先出的特点,可以保证数据按顺序消费
除此之外使用MQ还可以达到:提高系统响应速度,提高系统稳定性的目的。 将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。 提高了应用程序的响应时间。另外如果系统挂了也没关系,数据放到消息队列.后续可以继续消费
但是需要注意的是:对数据的一致性要求较高的业务场景不适合使用MQ,因为MQ具有一定的数据延迟
1.2 AMQP协议
AMQP是一套公开的消息队列协议,最早在2003年被提出,它旨在从协议层定义消息通信数据的标准格式,为的就是解决MQ市场上协议不统一的问题,RabbitMQ就是遵循AMQP标准协议开发的MQ服务。 官方:http://www.amqp.org
1.3 JMS是什么 ?
JMS是Java消息服务,是java提供的一套消息服务API标准,其目的是为所有的java应用程序提供统一的消息通信的标准,类似java的 jdbc,只要遵循jms标准的应用程序之间都可以进行消息通信。它和AMQP有什么 不同,jms是java语言专属的消 息服务标准,它是在api层定义标准,并且只能用于java应用;而AMQP是在协议层定义的标准,是跨语言的 。
1.4 RabbitMQ中核心概念
Broker:消息队列服务进程,此进程包括两个部分:Exchange和Queue。
Exchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过虑。exchange有下面四种(先了解:fanout,direct,topics,header)
Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的消费方。
Producer:消息生产者,即生产方客户端,生产方客户端将消息发送到MQ。
Consumer:消息消费者,即消费方客户端,接收MQ转发的消息。
1.5 RabbitMQ的工作流程
消息发布接收流程:
发送消息
1、生产者和Broker建立TCP连接。
2、生产者和Broker建立通道。
3、生产者通过通道消息发送给Broker,由Exchange将消息进行转发。
4、Exchange将消息转发到指定的Queue(队列)
消息接收消息
1、消费者和Broker建立TCP连接
2、消费者和Broker建立通道
3、消费者监听指定的Queue(队列)
4、当有消息到达Queue时Broker默认将消息推送给消费者。
5、消费者接收到消息。
## 2 下载安装erlang/otp
## 3 下载安装rabbitmq
参考资料 1、https://blog.csdn.net/u014494148/article/details/136557125 2、https://www.rabbitmq.com/docs/install-generic-unix,官方安装教程 3、https://www.rabbitmq.com/docs/which-erlang,rabbitmq与erlang/otp的兼容矩阵 4、https://github.com/rabbitmq/erlang-rpm/releases,zero-dependency Erlang RPM 零依赖的erlang rpm包下载地址
标签:Centos,队列,rabbitmq,Rabbitmq,Broker,MQ,消息,erlang,安装 From: https://www.cnblogs.com/zhangzl419/p/18346615