介绍
RabbitMQ是一个实现了高级消息队列协议(AMQP)的开源消息代理软件,也被称为面向消息的中间件。它是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库,因此它可以在不同的语言和环境中进行通信。
RabbitMQ的主要作用是在应用程序之间进行异步消息通信,它支持多种消息传递协议,包括AMQP、STOMP和MQTT等,使得应用程序之间的通信更加简单、可靠和可扩展。RabbitMQ能够实现消息的路由、转发、持久化、优先级和事务等操作,还可以实现负载均衡和高可用性。
RabbitMQ提供了多种消息传送模式,包括点对点队列和工作队列等。在点对点队列模式中,一个生产者投递消息给队列,只能允许有一个消费者进行消费。而在工作队列模式中,队列服务器向消费者发送消息时,消费者采用手动应答模式,队列服务器必须要接到消费者发送的ack结果通知,才会继续发送下一个消息。这种模式被称为“能者多劳队列”,即谁应答的快,谁就能多消费信息。
此外,RabbitMQ还具备用户角色配置功能,包括普通管理者、策略制定者、监控者、超级管理员等角色,以及无法登陆管理控制台的生产者和消费者角色。这些角色配置使得RabbitMQ能够满足不同用户的管理和操作需求。
RabbitMQ因其高效可靠的消息传递机制,被广泛应用于分布式应用程序、微服务架构和云计算环境等场景。无论是云服务器、物联网设备、大数据分析还是金融交易等领域,RabbitMQ都能发挥重要作用。
安装
第一个在线拉取
docker pull rabbitmq:3-management
第二个在本地拉取 ,其实就是先下载到本机在上传到虚拟机
docker load -i mq.tar
安装并运行mq
docker run \
-e RABBITMQ_DEFAULT_USER=为管理端登录账号 \
-e RABBITMQ_DEFAULT_PASS=为进入管理端的密码 \
--name mq \
--hostname mq1 \
-p 15672:15672 \ 这个为进入管理端的端口
-p 5672:5672 \ 这个为连接发送或接收
-d \ 后台运行
rabbitmq:3-management 版本号
官方的Hellowordl是基于最基础的消息队列来实现的包括三个角色
publisher:消息发布者,将消息发送到队列
queue:消息队列,负责接收并缓存消息
consumer:订阅队列,处理队列中的消息