重建rabbitmq
rabbitmq集群必要条件
1.1. 绑定实体ip,即ifconfig所能查询到的绑定到网卡上的ip,以下是绑定方法
#编辑配置路径 /etc/rabbitmq/rabbitmq-env.conf
NODE_IP_ADDRESS=172.16.0.133
1.2. 配置域名映射到实体ip
#配置文件1所在路径 /etc/rabbitmq/rabbitmq.config (如果是集群,每台机器都需要修改这个绑定本机实体ip)
#其中rabbit@master是创建集群时所配置的参数,@后面的参数为主机名,示例中为master
[
{rabbit, [
{cluster_nodes, {['rabbit@master'], disc}},
{cluster_partition_handling, ignore},
{default_user, <<"guest">>},
{default_pass, <<"guest">>},
{tcp_listen_options, [binary,
{packet, raw},
{reuseaddr, true},
{backlog, 128},
{nodelay, true},
{exit_on_close, false},
{keepalive, true}]}
]},
{kernel, [
{inet_dist_listen_max, 44001},
{inet_dist_listen_min, 44001}
]}
].
#配置文件2 所在路径 /etc/hosts (如果是集群,每台机器都需要修改这个绑定本机实体ip,而且hosts文件的映射不得重复,如果重复linux系统为以最下面一条记录为准)
172.16.0.133 master
172.16.0.134 venus
172.16.0.135 venus2
二、启动停止
2.1 停止
#机器A
service rabbitmq stop
epmd -kill
#机器B
service rabbitmq stop
epmd -kill
#机器C
service rabbitmq stop
epmd -kill
2.2 启动
#机器A
service rabbitmq start
#机器B
service rabbitmqstart
#机器C
service rabbitmqstart
三、重建集群
##3.1 使用2.1方法停止所有机器
##3.2 移除rabbitmq配置记录与存储文件
```bash
#位于 /var/lib/rabbitmq/mensia
mv /var/lib/rabbitmq/mensia /var/lib/rabbitmq/mensia.bak
3.3 按2.2方法启动所有机器
3.4 停止被加入集群节点app
比如A、B、C三台机器,将B和C加入到A中去,需要执行以下命令
#机器B
rabbitmqctl stop_app
#机器C
rabbitmqctl stop_app
3.5 建立集群
注意此处master为唯一没有执行rabbitmqctl stop_app的机器
#机器B
rabbitmqctl join_cluster rabbit@master
#机器C
rabbitmqctl join_cluster rabbit@master
3.6 启动集群
#机器B
rabbitmqctl start_app
#机器C
rabbitmqctl start_app
3.7 检查集群状态
在任意一台机器上执行rabbitmqctl cluster_status命令即可检查,输出包含集群中的节点与运行中的节点,兼以主机名标志
添加监控用户:
在A上执行rabbitmqctl add_user user1 123456Abc
rabbitmqctl set_user_tags user1 administrator
rabbitmqctl setPpermissions -p / user1 “.*” “.*” ”.*”
加入自助用户:
rabbitmqctl add_user sip_ext_admin TTyy@2015cxy
rabbitmqctl set_user_tags sip_ext_admin administrator
rabbitmqctl add_vhost sip_ext
rabbitmqctl set_permissions -p sip_ext sip_ext_admin ".*" ".*" ".*"
导入队列
python rabbitmqadmin -q import rabbit.sip.definitions.json
python rabbitmqadmin -q import rabbit.monitor.definitions.json
p版本自助
创建用户给权限:
rabbitmqctl add_user rabbitmqadmin rabbitmqadmin
rabbitmqctl set_permissions -p / rabbitmqadmin '.*' '.*' '.*'
rabbitmqctl set_user_tags rabbitmqadmin administrator
底层:
rabbitmqctl add_user tstack_openstack tstack_openstack
rabbitmqctl set_permissions -p / tstack_openstack '.*' '.*' '.*'
rabbitmqctl set_user_tags tstack_openstack administrator