-
安装服务(root)
erlang官方安装说明:https://www.erlang-solutions.com/resources/download.html
step 1: 安装erlang的yum源 (或者安装epel源,如果不要求最最新版本的话)
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
step 2:
安装erlang
# yum clean all ; yum makecache
# yum install erlang -y (Rabbitmq 基于 erlang 语言开发,所以需要安装 erlang 虚拟机)
step 3:
确认erlang安装成功
# erl
Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false]
Eshell V5.8.5 (abort with ^G)
1>io:format("hello world ~n").
输出 hello world ok 安装erlang完毕, 用 halt(). 退出
step 4:
安装rabbitmq-server
Rabbitmq官方安装说明: http://www.rabbitmq.com/install-rpm.html
导入rabbitmq 数字签名key 支持后安装
rabbitmq-server安装完成
第一次安装时没有更新EPEL安装到这里遇到的问题:
提示erlang 版本支持问题
Error: Package: rabbitmq-server-3.4.2-1.noarch (/rabbitmq-server-3.4.2-1.noarch)
Requires: erlang >= R12B-3
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
删除所有相关rpm包后重新按照官方文档安装
rpm -e epel-release-6-8.noarch
-
运行RabbitMQ Server
设置开机自动启动 rabbitmq-server# chkconfig --level 35 rabbitmq-server on启动rabbitmq-server [start][stop][etc]# service rabbitmq-server startrabbitmqctl status #查看运行信息
- 安装插件管理界面
webmachine error: path="/api/whoami"
"Unauthorized"
touch /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_NODENAME=rabbit@server-66 #节点名称
RABBITMQ_NODE_IP_ADDRESS=0.0.0.0 #监听IP
RABBITMQ_NODE_PORT=5672 #监听端口
RABBITMQ_LOG_BASE=/data/rabbitmq/log #日志目录
RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins #插件目录,,默认 /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.1/plugins
RABBITMQ_PLUGINS_EXPAND_DIR=/data/rabbitmq/plugins-expand #扩展插件目录,默认/var/lib/rabbitmq/mnesia/rabbit@server-65-plugins-expand
RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia #后端存储目录
rabbitctl
rabbitmqctl 是rabbitMQ中间件的一个命令行管理工具。它通过连接一个中间件节点执行所有的动作。
rabbitmqctl [-n node] [-q] {command} [command options…]
[-n node]
默认的节点是”rabbit@server”,一般是本地节点。
rabbitmqctl 默认产生详细输出。通过”-q”标示可选择安静模式。
应用和集群管理
1. 停止rabbitMQ应用,关闭节点 : rabbitmqctl stop
2. 停止rabbitMQ应用 : rabbitmqctl stop_app
3. 启动rabbitMQ应用 : rabbitmqctl start_app
4. 显示rabbitMQ中间件各种信息 : rabbitmqctl status
5. 重置rabbitMQ节点 : rabbitmqctl reset和 rabbitmqctl force_reset 从它属于的任何集群中移除,从管理数据库中移除所有数据,例如配置过的用户和虚拟宿主, 删除所有持久化的消息。 force_reset命令和reset的区别是无条件重置节点,不管当前管理数据库状态以及集群的配置。如果数据库或者集群配置发生错误才使用这个最后 的手段。 注意:只有在停止rabbitMQ应用后,reset和force_reset才能成功。
6. 循环日志文件 : rabbitmqctl rotate_logs[suffix]
7. 加入到某个节点中:rabbitmqctl join_cluster {clusternode} [--ram]默认是ram类型的,也可以是disc类型
8. 集群目前的状态:rabbitmqctl cluster_status
9. 改变当前节点的类型:rabbitmqctl change_cluster_node_type {disc | ram}使用这个命令的时候必须先把该节点stop。
10. 同步某个队列(建立镜像队列):rabbitmqctl sync_queue {queue-name}
11. 取消同步某个队列:rabbitmqctl cancel_sync_queue{queue-name}
用户管理
1. 添加用户:rabbitmqctl add_user username password
2. 删除用户:rabbitmqctl delete_user username
3. 修改密码:rabbitmqctl change_password username newpassword
4. 清除密码:rabbitmqctl clear_password {username}
5. 设置用户标签:rabbitmqctl set_user_tags {username} {tag…}如果tag为空则表示清除这个用户的所有标签
6. 列出所有用户 :rabbitmqctl list_users
权限控制
1. 创建虚拟主机:rabbitmqctl add_vhost vhostpath
2. 删除虚拟主机:rabbitmqctl delete_vhost vhostpath
3. 列出所有虚拟主机:rabbitmqctl list_vhosts
4. 设置用户权限:rabbitmqctl set_permissions [-p vhostpath] {username} {conf} {write} {read}
5. 清除用户权限:rabbitmqctl clear_permissions [-p vhostpath] {username}
6. 列出虚拟主机上的所有权限:rabbitmqctl list_permissions [-p vhostpath]
7. 列出用户权限:rabbitmqctl list_user_permissions {username}
参数管理
这个不常用,具体的可以去官网看文档
协议管理
1. 设置协议:rabbitmqctl set_policy [-p vhostpath] [--priority priority] [--apply-to apply-to] {name} {pattern} {definition}
a) name
协议的名字
b) pattern
匹配的正则表达式
c) definition
json term的形式来定义这个协议
d) priority
优先级,数字越大优先级越高,默认为0
e) apply-to
policy的类型,有三种:queues exchanges all 默认为all,具体定义可以去官网看文档
2. 清除协议:rabbitmqctl clear_policy [-p vhostpath] {name}
3. 列出协议列表:rabbitmqctl list_policies [-p vhostpath]
服务器状态
1. 队列列表:rabbitmqctl list_queues [-p vhostpath] [queueinfoitem…]
queueinfoitem:
a) name
b) durable
c) auto_delete
d) arguments
e) policy
f) pid
g) owner_pid
h) exclusive_consumer_pid
i) exclusive_consumer_tag
j) messages_ready
k) messages_unacknowledged
l) messages
m) consumers
n) active_consumers
o) memory
p) slave_pids
q) synchronized_slave_pids
r) status
2. 交换机列表:rabbitmqctl list_exchanges [-p vhostpath] [exchangeinfoitem…]
exchangeinfoitem:
a) name
b) type
c) durable
d) auto_delete
e) internal
f) arguments
g) policy
3. 绑定列表:rabbitmqctl list_bindings [-p vhostpath] [bindinginfoitem…]
bindinginfoitem:
a) source_name
b) source_kind
c) destination_name
d) destination_kind
e) routing_key
f) arguments
4. 连接列表:rabbitmqctl list_connections不常用,具体去官网看文档
5. 通道列表:rabbitmqctl list_channels不常用,具体去官网看文档
6. 消费者列表:rabbitmqctl list_consumers
7. 当前状态:rabbitmqctl status
8. 当前环境:rabbitmqctl environment
9. 相关报告:rabbitmqctl report
一些其他的命令
后台开启rabbitmq服务:rabbitmq-server –detached
声明队列:rabbitmqadmin declare queue name=queue-name durable={false | true}
发布消息:rabbitmqadmin publish exchange=exchange-name routing_key=key payload=”context”
如果有任何疑问可以去官网看文档: