一、MQ引言
MQ (Message Quene) : 翻译为
消息队列
,通过典型的生产者
和消费者
模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为消息中间件
。通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
当今市面上有很多主流的消息中间件,如老牌的ActiveMQ
、RabbitMQ
、炙手可热的Kafka
、阿里巴巴自主开发RocketMQ
等,本文主要介绍RabbitMQ
的用法。
二、RabbitMQ 的引言
RabbitMQ是基于
AMQP
协议,Erlang
语言开发,是部署最⼴泛的开源消息中间件,是最受欢迎的开源消息中间件之⼀。
官网 官网教程
三、基于docker 安装RabbitMQ
1.在docker hub上搜索RabbitMq,其中后面有management的提供web管理插件
2.将需要的docker镜像拉取下来
docker pull rabbitmq:3.8.3-management-alpine
3.创建容器
docker run -d --hostname my-rabbit --name rabbitMq -p 15672:15672 -p 5672:5672 -v /root/test/rabbitmq:/var/lib/rabbitmq -v /root/test/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf rabbitmq:3.8.3-management-alpine
注意:-v 绑定了我自己在宿主机创建的目录,需按实际情况进行修改!!!
4.访问web界面
http://ip:15672/
初始账号/密码:guest/guest
5.用户管理
Tags选项介绍:
超级管理员(Admin):可登陆管理控制台,可查看所有的信息,并且可以对⽤户,策略(policy)进行操作。
监控者(Monitoring):可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)。
策略制定者(Policymaker):可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息。
普通管理者(Management):仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
其他(None):无法登陆管理控制台,通常就是普通的生产者和消费者。
- 创建虚拟主机
为了让各个用户可以互不干扰的工作,RabbitMQ添加了虚拟主机(Virtual Hosts)的概念。其实就是⼀个独立的访问路径,不同用户使用不同路径,各自有自己的队列、交换机,互相不会影响。
7.绑定虚拟主机和用户