一.服务启动与关闭
rabbitmq启动方式有2种
1、以应用方式启动
后台启动
rabbitmq-server -detached
直接启动,如果你关闭窗口或者需要在改窗口使用其他命令时应用就会停止
rabbitmq-server
关闭整个节点(包括应用)
rabbitmqctl stop
怎样仅仅关闭应用而不关闭整个节点呢:
因为rabbitmq-server一起启动了节点和应用,它预先设置RabbitMQ应用为standalone模式。要将一个节点加入到现有的集群中,你需要停止这个应用并将节点设置为原始状态,然后就为加入集群准备好了。如果使用./rabbitmqctl stop,应用和节点都将被关闭。所以
仅仅关闭应用
rabbitmqctl stop_app
类似的,启动应用
rabbitmqctl start_app
2、以服务方式启动(安装完之后在任务管理器中服务一栏能看到RabbtiMq)
安装服务
rabbitmq-service install
开始服务
rabbitmq-service start
停止服务
rabbitmq-service stop
使服务有效
rabbitmq-service enable
使服务无效
rabbitmq-service disable
帮助
rabbitmq-service help
二.管理
Rabbitmq服务器的主要通过rabbitmqctl和rabbimq-plugins两个工具来管理,以下是一些常用功能。
1、插件管理
开启某个插件
rabbitmq-pluginsenable {plugin_name}
关闭某个插件
rabbitmq-pluginsdisable {plugin_name}
注意:重启服务器后生效。
常用的如:rabbitmq_management
- 该插件为rabbitmq提供一个基于web管理界面,可以很方便的在浏览器中管理rabbitmq,登录地址默认为localhost:15672,用户名和密码都为guest。
- 该命令可以列出所有的插件列表,标记为E*
或e*
的已经启用的插件,没标记的为未启用插件。
2、virtual_host管理
新建virtual_host
rabbitmqctladd_vhost {xxx}
撤销virtual_host
rabbitmqctl delete_vhost {xxx}
3、用户管理
新建用户
rabbitmqctl add_user {username} {password}
删除用户
rabbitmqctl delete_user {username}
改密码
rabbimqctl change_password {username} {newpassword}
设置用户角色(Tag可以为 administrator,monitoring, management)
rabbitmqctlset_user_tags {username} {tag ...}
4、权限管理
权限设置
set_permissions [-pvhostpath] {user} {conf} {write} {read}
vhostpath Vhost路径
user 用户名
conf 一个正则表达式match哪些配置资源能够被该用户访问
write 一个正则表达式match哪些配置资源能够被该用户读
read 一个正则表达式match哪些配置资源能够被该用户访问
5、获取服务器状态信息
服务器状态
rabbitmqctl status
队列信息
rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...]
queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,messages_unacknowledged,messages,consumers,memory
Exchange信息
rabbitmqctllist_exchanges[-p vhostpath] [exchangeinfoitem ...]
exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments
Binding信息
rabbitmqctllist_bindings[-p vhostpath] [bindinginfoitem ...]
bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments
Connection信息
rabbitmqctllist_connections [connectioninfoitem ...]
connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等
Channel信息
rabbitmqctl list_channels[channelinfoitem ...]
channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked
三.rabbitmq配置
一般情况下,RabbitMQ的默认配置就足够了。如果希望特殊设置的话,有两个途径:
- 一个是环境变量的配置文件 rabbitmq-env.conf。
- 一个是配置信息的配置文件 rabbitmq.config。
注意:这两个文件默认是没有的,如果需要必须自己创建。
示例:
rabbitmq-env.conf:
这个文件的位置是确定和不能改变的,位于:/etc/rabbitmq目录下(这个目录需要自己创建)。
#RABBITMQ_NODE_PORT= //端口号
#HOSTNAME=
RABBITMQ_NODENAME=mq
RABBITMQ_CONFIG_FILE= //配置文件的路径
RABBITMQ_MNESIA_BASE=/rabbitmq/data //需要使用的MNESIA数据库的路径
RABBITMQ_LOG_BASE=/rabbitmq/log //log的路径
RABBITMQ_PLUGINS_DIR=/rabbitmq/plugins //插件的路径
l#define-environment-variables
rabbitmq.config
这是一个标准的erlang配置文件。它必须符合erlang配置文件的标准。
它既有默认的目录,也可以在rabbitmq-env.conf文件中配置。