2、xmlto
直接yum:
yum install xmlto3、安装rabbitMQ
wget -c http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.0/rabbitmq-server-3.3.0-1.noarch.rpm yum install rabbitmq-server-3.3.0-1.noarch.rpm/etc/init.d/rabbitmq-server start
管理界面
rabbitmq-plugins enable rabbitmq_management
/etc/init.d/rabbitmq-server restart
增加用户
rabbitmqctl add_user zwh 111111
设置用户角色
rabbitmqctlset_user_tags zwh administrator
打开 15672、5672端口。
登录: http://ip:15672
设置
vi /etc/rabbitmq/rabbitmq-env.conf
NODENAME=rabbit@prp2p-qd10 NODE_IP_ADDRESS=10.143.37.29 NODE_PORT=5672
5、管理
Rabbitmq服务器的主要通过rabbitmqctl和rabbimq-plugins两个工具来管理,以下是一些常用功能。
1). 服务器启动与关闭
启动: rabbitmq-server –detached
关闭:rabbitmqctl stop
若单机有多个实例,则在rabbitmqctlh后加–n 指定名称
2). 插件管理
开启某个插件:rabbitmq-pluginsenable xxx
关闭某个插件:rabbitmq-pluginsdisablexxx
注意:重启服务器后生效。
3).virtual_host管理
新建virtual_host: rabbitmqctladd_vhost xxx
撤销virtual_host:rabbitmqctl delete_vhost xxx
4). 用户管理
新建用户:rabbitmqctl add_user xxxpwd
删除用户: rabbitmqctl delete_user xxx
改密码: rabbimqctlchange_password {username} {newpassword}
设置用户角色:rabbitmqctlset_user_tags {username} {tag ...}
Tag可以为 administrator,monitoring, management
5). 权限管理
权限设置:set_permissions [-pvhostpath] {user} {conf} {write} {read}
Vhostpath
Vhost路径
user
用户名
Conf
一个正则表达式match哪些配置资源能够被该用户访问。
Write
一个正则表达式match哪些配置资源能够被该用户读。
Read
一个正则表达式match哪些配置资源能够被该用户访问。
6). 获取服务器状态信息
服务器状态: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
6、
客户端采用Java来进行测试连接,下载rabbitmq所需jar包,并加入服务器端对应的ip、端口以及rabbitmq的用户名和密码,如图:
消息发送端与消息接收端均采用上述相同的配置,随后就可进行消息在不同客户端之间的传递。
1、实验环境
3 rabbitmq-node1.com192.168.1.112 rabbitmq-node2.com192.168.1.113 rabbitmq-node3.com192.168.1.1282、配置前检查同步时间
#ntpdate pool.ntp.org3、注意一定要修改hosts
#cat /etc/hosts 192.168.1.112 rabbitmq-node1.com rabbitmq-node1 192.168.1.113 rabbitmq-node2.com rabbitmq-node2 192.168.1.128 rabbitmq-node3.com rabbitmq-node34、安装erlang
#yum -y install erlang5、安装rabbitqmq
#wget http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.6/rabbitmq-server-2.8.6-1.noarch.rpm #yum -y install rabbitmq-server-2.8.6-1.noarch.rpm [root@rabbitmq-node1 ~] # /etc/init.d/rabbitmq-server start Starting rabbitmq-server: SUCCESS rabbitmq-server.# rabbitmqctl status //查看状态
6、安装插件管理界面
#mkdir -m 777 /etc/rabbitmq/ (如果目录已经存在直接执行 # chmod 777 /etc/rabbitmq/) #rabbitmq-plugins enable rabbitmq_management 重启rabbitmq-server #rabbitmqctl stop #/etc/init.d/rabbitmq-server start
查看管理端口有没有启动:
# netstat -tnlp|grep 55672
浏览器打开http://IP:55672 账号密码都是guest
注意:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。
如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(/etc/rabbitmq/rabbitmq.config)中设置loopback_users为[]。
/etc/rabbitmq/rabbitmq.config文件完整内容如下(注意后面的半角句号):
[{rabbit, [{loopback_users, []}]}].
7、rabbitmq集群配置
(1)设置每个节点Cookie
Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。Erlang的集群中各节点是通过一个magic cookie来实现的,这个cookie存放在 /var/lib/rabbitmq/.erlang.cookie 中,文件是400的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信
# cat /var/lib/rabbitmq/.erlang.cookie EJARCZORCOTEQWFGPWXR(2)停止所有节点RabbitMQ服务,然后使用detached参数独立运行,这步很关键,尤其增加节点停止节点后再次启动遇到无法启动都可以参照这个顺序
[root@rabbitmq-node3 ~] #rabbitmq-server -detached [root@rabbitmq-node2 ~] #rabbitmq-server -detached [root@rabbitmq-node1 ~] #rabbitmq-server -detached(3)关于节点类型(ram |disk)
ram节点的状态保存在内存中,disk节点保存在磁盘中被加入的节点为disk,如本例中rabbit@host2为ram节点,rabbit@host1,rabbit@host3为ram节点,可以通过rabbitmqctl cluster命令改变加入的集群以及节点类型该命令后可以加多个节点名称,指定的节点就会变成disk节点
[root@rabbitmq-node3 ~] #rabbitmqctl cluster_status [root@rabbitmq-node3 ~] #rabbitmqctl stop_app [root@rabbitmq-node3 ~] #rabbitmqctl reset [root@rabbitmq-node3 ~] #rabbitmqctl cluster [root@rabbitmq-node3 ~] #rabbitmqctl start_app 指定为 ram [root@rabbitmq-node2 ~] #rabbitmqctl stop_app [root@rabbitmq-node2 ~] #rabbitmqctl reset [root@rabbitmq-node2 ~] #rabbitmqctl join_cluster--ram rabbit@rabbitmq-node3 [root@rabbitmq-node2 ~] #rabbitmqctl start_app 指定为disc [root@rabbitmq-node1 ~] #rabbitmqctl stop_app [root@rabbitmq-node1 ~] #rabbitmqctl reset [root@rabbitmq-node1 ~] #rabbitmqctl join_cluster rabbit@rabbitmq-node3 [root@rabbitmq-node1 ~] #rabbitmqctl start_app
(4)自动配置集群,默认文件是没有的,如果需要必须手动创建
[root@rabbitmq-node1 ~] # cat /etc/rabbitmq/rabbitmq.conf [ ... {rabbit, [ ... {cluster_nodes, [ 'rabbit@rabbitmq-node1' , 'rabbit@rabbitmq-node2' , 'rabbit@rabbitmq-node3' ]}, ... ]}, ... ]. [root@rabbitmq-node1 ~] # cat /etc/rabbitmq/rabbitmq-env.conf RABBITMQ_MNESIA_BASE= /var/lib/rabbitmq/// 需要使用的MNESIA数据库的路径 RABBITMQ_LOG_BASE= /var/log/rabbitmq///log 的路径 RABBITMQ_PLUGINS_DIR= /usr/lib/rabbitmq/lib/rabbitmq_server-2 .8.6 /plugins// 插件的路径(5)启动后就自动加入集群了
[root@rabbitmq-node1 ~] #rabbitmq-server -detached [root@rabbitmq-node1 ~] # rabbitmqctl cluster_status Cluster status of node 'rabbit@rabbitmq-node1' ... [{nodes,[{disc,[ 'rabbit@rabbitmq-node1' , 'rabbit@rabbitmq-node3' ]}, { ram ,[ 'rabbit@rabbitmq-node2' ]}]}, {running_nodes,[ 'rabbit@rabbitmq-node2' , 'rabbit@rabbitmq-node3' , 'rabbit@rabbitmq-node1' ]}] ... done .
(6)在浏览器中可以看到所有节点的信息,如果其他节点信息没有显示启用web管理就好