安装
rpm -ivh --nodeps esl-erlang_22.1.8-1_centos_7_amd64.rpm
rpm -ivh --nodeps rabbitmq-server-3.8.1-1.el7.noarch.rpm
rabbitmq-plugins enable rabbitmq_management
后台启动MQ
rabbitmq-server -detached
服务停止
rabbitmqctl stop
终止与启动应用
启动应用
rabbitmqctl start_app
终止应用
rabbitmqctl stop_app
用户管理
创建新用户
rabbitmqctl add_user{username}{password}
删除用户
rabbitmqctl delete_user{username}
重置密码
rabbitmqctl change_passwprd{username}{newpassword}
授权用户角色(Tag)
rabbitmqctl set_user_tags{username}{tag}
设置用户允许访问的vhost
rabbitmqctl set_permissions -p / user_admin ‘.’’.’’.*’
RabbitMQ用户四种Tag
超级管理员(administrator)
可登陆管理控制台(启用management pligin的情况),可查看所有的信息,
并且可以对用户,策略(policy)进行操作。
监控者(monitoring)
登陆管理控制台(启用management plugin的情况下),同时可以查看
rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下),同时可以对
policy进行管理。但无法查看节点的相关信息。
普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到
节点信息,也无法对策略进行管理。
AMQP
AMQP,即Advanced Message Queying Protocol,一个提供统一消息服务
的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向
消息中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受
客户端/中间件不同产品,不同的开放语言等条件的限制。Erlang种的实
现有RabbitMQ等。
基本概念
Producer:生产者,消费的提供者
Consumer:消费者,消息的使用者
Message:消息,程序间的通信的数据
Queue:队列,消息存放的容器,消息先进先出
Vhost:虚拟主机,相当于MQ的"数据库",用于存储队列
消息状态
Ready
消息已被送入队列,等待被消费
Unacked
消息已经被消费者认领,但还未被确认"已被消费"
Unacked状态下,消费者端口链接则消息回到"Ready"
没有确认,客户也没有断开链接,则一直处于Unacked。
Finished
调用basicAck()方法后,表示消息已被消费,从队列中移除。