RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
## 安装rabbitmq # 安装依赖 yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto # 安装或更新EPEL库 yum -y install epel-release # 或: wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm # 安装erlang 下载 https://bintray.com/rabbitmq/rpm/erlang # 注意el6 和 el7的区别 rpm -ivh erlang-21.1.2-1.el6.x86_64.rpm # centos6.5用el6 ## 检查 erl # 进入erlang 出现:Erlang/OTP 21 [erts-10.1.2] [source] [64-bit]... halt(). # 退出 erlang netstat -nltp # 端口4369即是erlang的进程 # 安装MQ 下载 # http://www.rabbitmq.com/download.html rpm -ivh rabbitmq-server-3.7.11-1.el6.noarch.rpm
简单的服务启动与停止
## 服务管理命令 service rabbitmq-server start # 启动 service rabbitmq-server status # 状态 service rabbitmq-server stop # 停止 rabbitmq-plugins enable rabbitmq_management # 启用15672 web管理 ## 常用命令 rabbitmqctl # 帮助 rabbitmqctl status # 状态 同上 rabbitmqctl stop # 停止服务 会将节点及应用程序同时关闭 # 由于同一节点可能运行除rabbitmq 其他erlang程序,停止整个节点是不可取的 rabbitmqctl stop_app # 保持25672不停 rabbitmqctl start_app # 启动5672 和 15672
# 3.7.11 默认情况下guest用户只能localhost访问。
## 用户管理 rabbitmqctl add_user admin 123456 # 添加用户admin rabbitmqctl delete_user admin # 删除用户 rabbitmqctl change_password admin 111111 # 修改密码 rabbitmqctl list_users # 查看用户列表 rabbitmqctl set_user_tags admin administrator # 赋予管理员权限
## 用户角色 参考:
作者:dzgdp888
链接:https://www.jianshu.com/p/e3af4cf97820
来源:简书
用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
(1) 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2) 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3) 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。与administrator的对比,administrator能看到这些内容。
(4) 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5) 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
## 以下博客都对操作RabbitMQ有详细介绍。
# springboot操作RabbitMQ使用参考:https://www.cnblogs.com/ityouknow/p/6120544.html
# C# 操作RabbitMQ使用参考: https://www.cnblogs.com/richieyang/p/5492432.html
# Node.js操作RabbitMQ https://www.cnblogs.com/wukong-holmes/p/9306733.html