1、认识RabbitMQ
1.1、什么是MQ
MQ是消息队列(Message Queue)的缩写,是一种消息通信模式。它基于先进先出(FIFO)的原则,将消息存储在队列中,并确保消息的确切顺序被消费者接收。消息队列可以提高应用程序的可伸缩性和可靠性,并使应用程序彼此独立地协作运行。常用的MQ系统包括RabbitMQ、Kafka、ActiveMQ等。它们都实现了高效且可靠的消息传递机制,并为应用程序之间的通信提供了一种可靠而灵活的方式。
1.2、RabbitMQ简介
RabbitMQ是一种开源的消息代理软件,它实现了高度可靠且可扩展的消息队列模式。RabbitMQ基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)标准,并采用Erlang编写。它的设计目标是实现高性能、可靠性和可扩展性,使分布式系统之间的消息传递变得更加简单、可靠和灵活。
RabbitMQ的工作原理基于生产者、消费者和队列的概念。生产者将消息发送到队列中,消费者从队列中接收消息进行处理。RabbitMQ提供了丰富的特性,如消息持久化、消息路由、消息确认、消息复制等,以满足不同场景下的需求。它可以与多种编程语言和平台进行集成,并且有广泛的应用于分布式系统、微服务架构、异步任务处理等领域。
RabbitMQ还具备灵活的部署和管理方式,支持集群和镜像机制,可以实现高可用性和负载均衡。此外,它还提供了管理界面和监控工具,用于监视和管理队列、消息、交换机等相关信息。
1.3、开发语言
RabbitMQ是使用Erlang语言开发的,它是一种函数式编程语言,专门用于构建高度可靠和可扩展的分布式系统。Erlang具有并发、容错和分布式处理的能力,它为RabbitMQ提供了高性能和稳定性。
除了使用Erlang开发RabbitMQ核心引擎外,RabbitMQ还提供了丰富的客户端库,用于与多种编程语言进行集成。这些客户端库包括:Java、Python、Ruby、JavaScript、C#、Go、PHP等,几乎支持主流的编程语言。开发者可以根据自己的需求和喜好选择适合的客户端库进行开发。
因此,RabbitMQ不仅仅局限于使用Erlang语言进行开发,它具有广泛的语言支持,使开发者能够使用自己熟悉和喜欢的编程语言来与RabbitMQ进行交互。这样,开发者可以更方便地集成RabbitMQ进入自己的应用程序中,实现可靠的消息传递和处理。
1.4、AMQP
AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是一种开放标准的消息传递协议,用于在应用程序之间进行可靠的异步通信。AMQP旨在提供一种统一的消息传递解决方案,以满足不同系统、不同供应商之间的互操作性需求。
AMQP定义了一套规范和协议,用于实现消息的生产、中转和消费。它支持复杂的消息路由、消息持久化、事务、消息确认等高级特性,以及广播和主题发布-订阅等消息模型。AMQP的设计目标是在可靠性、灵活性和性能方面提供良好的性能,并能够适应各种类型的应用场景。
AMQP协议的优点在于其开放性和可扩展性。它允许不同供应商的消息中间件实现符合AMQP标准,从而实现了跨平台、跨语言的互操作性。这使得开发者可以选择适合自己需求的消息中间件,而无需担心与其他系统的兼容性问题。
RabbitMQ是一个符合AMQP标准的消息中间件,是AMQP的一种实现。它使用AMQP协议作为消息传递的基础,并支持完整的AMQP 0-9-1版本。通过使用AMQP,应用程序可以利用RabbitMQ来实现可靠的异步通信,实现不同系统之间的消息传递和协调。其他MQ系统,如ActiveMQ、Kafka等,也可以集成AMQP协议来实现与其他遵循AMQP标准的系统的互操作性
2、安装
2.1、官网
2.2、下载
下载网址:Downloading and Installing RabbitMQ — RabbitMQ
选择对应的操作系统
点击对应的操作系统
往下滑到Dependencies
下载Erlang与RabbitMQ
2.3、安装Erlang--一直下一步就行了
2.4、安装RabbitMQ
3、启动
3.1、找到rabbitMQ的安装目录下的sbin文件下
如这样:
或者是找到
C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\RabbitMQ Server
能用管理员的身份进入sbin就行
3.2、启动
输入
rabbitmq-plugins enable rabbitmq_management
这样就启动了管理工具
也可以试试这些命令
停止:net stop RabbitMQ
启动:net start RabbitMQ
3.3、输入网址访问页面
能访问到这个页面就安装成功了
登陆的默认账号和密码是guest/guest